diff --git a/src/d_main.c b/src/d_main.c
index bbb154e1f65795f9664f2a221df6fd6be0b5d67b..ae706ea91b62c9d77ebede1a7278b6cb186858db 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -1286,12 +1286,14 @@ void D_SRB2Main(void)
 	// Lactozilla: Does the render mode need to change?
 	if ((setrenderneeded != 0) && (setrenderneeded != rendermode))
 	{
+		CONS_Printf("Switching the renderer...\n");
 		needpatchflush = true;
 		needpatchrecache = true;
 		VID_CheckRenderer();
 		SCR_ChangeRendererCVars(setrenderneeded);
+		D_CheckRendererState();
+		setrenderneeded = 0;
 	}
-	D_CheckRendererState();
 
 	wipegamestate = gamestate;
 
diff --git a/src/sdl/i_video.c b/src/sdl/i_video.c
index 13e2423c4fe19743cde4934f1a4249171147ead1..7af1863ab30e160440a548c6ee3cd1a533dc34ac 100644
--- a/src/sdl/i_video.c
+++ b/src/sdl/i_video.c
@@ -1499,7 +1499,6 @@ void VID_CheckRenderer(void)
 	{
 		I_StartupHardwareGraphics();
 		R_InitHardwareMode();
-		HWR_Switch();
 	}
 #endif
 }