diff --git a/src/d_main.c b/src/d_main.c
index 74547f9f7902f1929a1aac8ad291cc9e45161719..32972c1513f47dabe962291d12f5e7d757bd7937 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -656,7 +656,9 @@ void D_SRB2Loop(void)
 	LMFAO this was showing garbage under OpenGL
 	because I_FinishUpdate was called afterward
 	*/
-	V_DrawScaledPatch(0, 0, 0, W_CachePatchNum(W_GetNumForName("CONSBACK"), PU_CACHE));
+	/* Smells like a hack... Don't fade Sonic's ass into the title screen. */
+	if (gamestate != GS_TITLESCREEN)
+		V_DrawScaledPatch(0, 0, 0, W_CachePatchNum(W_GetNumForName("CONSBACK"), PU_CACHE));
 
 	for (;;)
 	{