diff --git a/src/framework/WindowManager.cpp b/src/framework/WindowManager.cpp
index 56db0aa724707a2a1a2a74d722470475dd4357a8..dba0d9f8d05f187c40d9c7f0bb92bd3bf492b06e 100644
--- a/src/framework/WindowManager.cpp
+++ b/src/framework/WindowManager.cpp
@@ -276,10 +276,13 @@ void WindowManager::eventLoop()
 				(event.type == SDL_MOUSEMOTION || event.type == SDL_MOUSEBUTTONDOWN ||
 				 event.type == SDL_KEYDOWN)) {
 
-			// we're in screensaver mode so exit on user input
-			SDL_GL_DeleteContext(m_GLContext);
-			SDL_DestroyWindow(m_Window);
-			SDL_Quit();
+			// don't handle events prematurely
+			if((SDL_GetWindowFlags(m_Window) & SDL_WINDOW_SHOWN)) {
+				// we're in screensaver mode so exit on user input
+				SDL_GL_DeleteContext(m_GLContext);
+				SDL_DestroyWindow(m_Window);
+				SDL_Quit();
+			}
 		}
 		else if (event.motion.state & (SDL_BUTTON(1) | SDL_BUTTON(3)) &&
 				 event.type == SDL_MOUSEMOTION) {