diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index 6a2ef471be0f69978feda93ec0964f1d326deb7a..1268e4341bcf7dc7797b99cd921f9257d56e9cf2 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -372,6 +372,9 @@ static void wm_window_add_ghostwindow(const char *title, wmWindow *win)
 		
 		if (win->eventstate == NULL)
 			win->eventstate = MEM_callocN(sizeof(wmEvent), "window event state");
+
+		/* set the state */
+		GHOST_SetWindowState(ghostwin, (GHOST_TWindowState)win->windowstate);
 		
 		/* store actual window size in blender window */
 		bounds = GHOST_GetClientBounds(win->ghostwin);
@@ -379,9 +382,6 @@ static void wm_window_add_ghostwindow(const char *title, wmWindow *win)
 		win->sizey = GHOST_GetHeightRectangle(bounds);
 		GHOST_DisposeRectangle(bounds);
 
-		/* set the state */
-		GHOST_SetWindowState(ghostwin, (GHOST_TWindowState)win->windowstate);
-
 		/* until screens get drawn, make it nice gray */
 		glClearColor(0.55, 0.55, 0.55, 0.0);
 		/* Crash on OSS ATI: bugs.launchpad.net/ubuntu/+source/mesa/+bug/656100 */