diff --git a/src/m_menu.c b/src/m_menu.c
index f9f97b1dd7fea095815823f6a38cc8b4d3bd4fcc..a9db1e640967caa88391bce622a12e93810ae411 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -4982,7 +4982,7 @@ static void M_ChoosePlayer(INT32 choice)
 	boolean ultmode = (ultimate_selectable && SP_PlayerDef.prevMenu == &SP_LoadDef && saveSlotSelected == NOSAVESLOT);
 
 	// skip this if forcecharacter
-	if (mapheaderinfo[startmap-1] && mapheaderinfo[startmap-1]->forcecharacter[0] == '\0')
+	if (!mapheaderinfo[startmap-1] || mapheaderinfo[startmap-1]->forcecharacter[0] == '\0')
 	{
 		// M_SetupChoosePlayer didn't call us directly, that means we've been properly set up.
 		char_scroll = itemOn*128*FRACUNIT; // finish scrolling the menu