diff --git a/src/d_main.c b/src/d_main.c
index 989204e1faf5fa71ebbc5598d5208ec662d5e318..6ee78cabb099a1c9104cff29761787da27161b2d 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -288,7 +288,7 @@ static void D_Display(void)
 		{
 			// Fade to black first
 			if ((wipegamestate == (gamestate_t)FORCEWIPE ||
-			        (wipegamestate != (gamestate_t)-2
+			        (wipegamestate != (gamestate_t)FORCEWIPEOFF
 						&& !(gamestate == GS_LEVEL || (gamestate == GS_TITLESCREEN && titlemapinaction)))
 					) // fades to black on its own timing, always
 			 && wipetypepre != UINT8_MAX)
@@ -374,7 +374,7 @@ static void D_Display(void)
 
 	// STUPID race condition...
 	if (wipegamestate == GS_INTRO && gamestate == GS_TITLESCREEN)
-		wipegamestate = -2;
+		wipegamestate = FORCEWIPEOFF;
 	else
 	{
 		wipegamestate = gamestate;
diff --git a/src/f_finale.h b/src/f_finale.h
index 27ece47c937c97c6a393a65e13da774fc0ab5b7e..18c032ba6895ad681415978443a7f90c64901d26 100644
--- a/src/f_finale.h
+++ b/src/f_finale.h
@@ -102,6 +102,7 @@ void F_MenuPresTicker(boolean run);
 //
 // HACK for menu fading while titlemapinaction; skips the level check
 #define FORCEWIPE -3
+#define FORCEWIPEOFF -2
 
 extern boolean WipeInAction;
 extern INT32 lastwipetic;
diff --git a/src/p_setup.c b/src/p_setup.c
index f7d51ad0fe223d32b64613dc2785839de402db3b..9686585bb8fa93d16f63c5a0ad8ce4b4ef842977 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -2729,7 +2729,7 @@ boolean P_SetupLevel(boolean skipprecip)
 	players[consoleplayer].viewz = 1;
 
 	// Cancel all d_main.c fadeouts (keep fade in though).
-	wipegamestate = -2;
+	wipegamestate = FORCEWIPEOFF;
 
 	// Special stage fade to white
 	// This is handled BEFORE sounds are stopped.