diff --git a/src/m_pw.cpp b/src/m_pw.cpp
index acc3859de4314486095c6c893b6bd32aabed2293..0309a577449e68043933ac18348f0355ac44e3f8 100644
--- a/src/m_pw.cpp
+++ b/src/m_pw.cpp
@@ -325,6 +325,8 @@ void f_maps()
 			continue;
 		if (mapheaderinfo[i]->typeoflevel & TOL_VERSUS)
 			continue;
+		if (!strcmp(mapheaderinfo[i]->lumpname, "RR_HIDDENPALACE"))
+			continue;
 		mapheaderinfo[i]->records.mapvisited |= GD_MV_SET;
 		success = true;
 	}
@@ -333,12 +335,12 @@ void f_maps()
 	if (success)
 	{
 		S_StartSound(0, sfx_kc42);
-		M_StartMessage("// FIXME don't crash in certification test", "Unlocked all maps. Go see the world!", NULL, MM_NOTHING, NULL, NULL);
+		M_StartMessage("// FIXME don't crash in certification test", "Unlocked most maps. Go see the world!", NULL, MM_NOTHING, NULL, NULL);
 		G_SaveGameData();
 	}
 	else
 	{
-		M_StartMessage("// FIXME don't crash in certification test", "You've already unlocked all maps.", NULL, MM_NOTHING, NULL, NULL);
+		M_StartMessage("// FIXME don't crash in certification test", "There are no maps to unlock.", NULL, MM_NOTHING, NULL, NULL);
 	}
 }