diff --git a/src/screen.c b/src/screen.c
index f739a5177e92e07b2fe12530e3ecc2b008e7c84b..b21b6815a3b91ee691416d1fcd88f1dca6c30432 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -203,6 +203,8 @@ void SCR_SetMode(void)
 		needpatchflush = true;
 		needpatchrecache = true;
 		VID_CheckRenderer();
+		if (!setmodeneeded)
+			VID_SetMode(vid.modenum);
 	}
 
 	if (setmodeneeded)