diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index 6e8e67fc47d76d6ac7834252d8ff34c286b9917c..c44a14f8bb266900b28e6b7a146f020e62cd9a51 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -1737,7 +1737,7 @@ void D_MapChange(INT32 mapnum, INT32 newgametype, boolean pultmode, boolean rese
 	}
 	CONS_Debug(DBG_GAMELOGIC, "Map change: mapnum=%d gametype=%d ultmode=%d resetplayers=%d delay=%d skipprecutscene=%d\n",
 	           mapnum, newgametype, pultmode, resetplayers, delay, skipprecutscene);
-	if ((netgame || multiplayer) && !((gametype == newgametype) && (newgametype == GT_COOP)))
+	if ((netgame || multiplayer) && !((gametype == newgametype) && (gametypedefaultrules[newgametype] & GTR_CAMPAIGN)))
 		FLS = false;
 
 	if (delay != 2)