diff --git a/src/g_game.c b/src/g_game.c
index f1a0ffd3f7f8e7fd812843ab759eca17103d121b..20619da73bdbdd5c82edf1af2e8ea0dab3b11a27 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -3928,12 +3928,13 @@ static void G_DoCompleted(void)
 	{
 		token--;
 
-		for (i = 0; i < 7; i++)
-			if (!(emeralds & (1<<i)))
-			{
-				nextmap = ((netgame || multiplayer) ? smpstage_start : sstage_start) + i - 1; // to special stage!
-				break;
-			}
+		if (!nextmapoverride)
+			for (i = 0; i < 7; i++)
+				if (!(emeralds & (1<<i)))
+				{
+					nextmap = ((netgame || multiplayer) ? smpstage_start : sstage_start) + i - 1; // to special stage!
+					break;
+				}
 
 		if (i == 7)
 		{