diff -r ae930e5dbc71 docs/zandronum-history.txt
--- a/docs/zandronum-history.txt	Sun Jul 12 22:18:55 2015 +0200
+++ b/docs/zandronum-history.txt	Wed Jul 15 00:16:36 2015 +0300
@@ -12,6 +12,10 @@
 ===============================================================================================================
 
 
+2.2
+---
+-	- Fixed: Map rotation entries would be skipped if the map was exited multiple times, e.g. by a player crossing multiple exit lines at the same time. [Dusk]
+
 2.1.1
 -----
 
diff -r ae930e5dbc71 src/g_level.h
--- a/src/g_level.h	Sun Jul 12 22:18:55 2015 +0200
+++ b/src/g_level.h	Wed Jul 15 00:16:36 2015 +0300
@@ -208,6 +208,7 @@
 	// [BB] Ceartain game modes are supposed to behave differently on
 	// the map. For example in duel mode the countdown and the map reset are skipped.
 	LEVEL2_ISLOBBY				= 0x20000000,
+	LEVEL2_MAPROTATIONADVANCED	= 0x40000000,	// [TP] We've advanced to the next map in rotation
 };
 
 
diff -r ae930e5dbc71 src/maprotation.cpp
--- a/src/maprotation.cpp	Sun Jul 12 22:18:55 2015 +0200
+++ b/src/maprotation.cpp	Wed Jul 15 00:16:36 2015 +0300
@@ -87,6 +87,11 @@
 	if ( g_MapRotationEntries.empty( ))
 		return;
 
+	// [TP] If the map rotation has been advanced, the current map is now the next map and we
+	// should thus keep the next map as is or maps will be skipped in between.
+	if ( level.flags2 & LEVEL2_MAPROTATIONADVANCED )
+		return;
+
 	// [BB] The random selection is only necessary if there is more than one map.
 	if ( sv_randommaprotation && ( g_MapRotationEntries.size( ) > 1 ) )
 	{
@@ -128,9 +133,16 @@
 //
 void MAPROTATION_AdvanceMap( void )
 {
+	// [TP] It's possible that the level is exited multiple times. If the current map has already
+	// seen an exit and thus map rotation advancement, we should not advance in rotation again.
+	if ( level.flags2 & LEVEL2_MAPROTATIONADVANCED )
+		return;
+
 	g_ulCurMapInList = g_ulNextMapInList;
 	if ( g_ulCurMapInList < g_MapRotationEntries.size() )
 		g_MapRotationEntries[g_ulCurMapInList].bUsed = true;
+
+	level.flags2 |= LEVEL2_MAPROTATIONADVANCED;
 }
 
 //*****************************************************************************
