diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBC_PPU.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBC_PPU.cs
index 11ae57af35..2573b546a3 100644
--- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBC_PPU.cs
+++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBC_PPU.cs
@@ -111,8 +111,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk
 					LCDC = value;
 					break; 
 				case 0xFF41: // STAT
-					// writing to STAT during mode 0 or 2 causes a STAT IRQ
-					if (LCDC.Bit(7))
+					// note that their is no stat interrupt bug in GBC
+					// writing to STAT during mode 0 or 1 causes a STAT IRQ
+					if (LCDC.Bit(7) && !Core.GBC_compat)
 					{
 						if (((STAT & 3) == 0) || ((STAT & 3) == 1))
 						{
diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GB_PPU.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GB_PPU.cs
index 12bbb69b3e..396c602f0a 100644
--- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GB_PPU.cs
+++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GB_PPU.cs
@@ -52,7 +52,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk
 					LCDC = value;
 					break; 
 				case 0xFF41: // STAT
-					// writing to STAT during mode 0 or 2 causes a STAT IRQ
+					// writing to STAT during mode 0 or 1 causes a STAT IRQ
 					if (LCDC.Bit(7))
 					{
 						if (((STAT & 3) == 0) || ((STAT & 3) == 1))