diff --git a/CHANGES b/CHANGES
index 2e8cff791..ec831549d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3,6 +3,7 @@ Bugfixes:
  - GBA Video: Mark OAM dirty on reset (fixes mgba.io/i/1062)
  - GBA Hardware: Fix RTC overriding light sensor (fixes mgba.io/i/1069)
  - GBA Savedata: Fix savedata modified time updating when read-only
+ - GB Video: Fix enabling window when LY > WY (fixes mgba.io/i/409)
 
 0.6.3: (2017-04-14)
 Bugfixes:
diff --git a/src/gb/renderers/software.c b/src/gb/renderers/software.c
index 947662f97..0b3294517 100644
--- a/src/gb/renderers/software.c
+++ b/src/gb/renderers/software.c
@@ -90,7 +90,11 @@ static void GBVideoSoftwareRendererUpdateWindow(struct GBVideoSoftwareRenderer*
 			renderer->hasWindow = true;
 		} else {
 			if (!renderer->hasWindow) {
-				renderer->currentWy = renderer->lastY - renderer->wy;
+				if (renderer->lastY > renderer->wy) {
+					renderer->currentWy = GB_VIDEO_VERTICAL_PIXELS;
+				} else {
+					renderer->currentWy = renderer->lastY - renderer->wy;
+				}
 			} else {
 				renderer->currentWy += renderer->lastY;
 			}