diff --git a/src/p_setup.c b/src/p_setup.c
index b1521a53e714d2398ebfb90cb6619bd63fc1aa0a..5e13559815eb4353d844c9c0aab3a67fa6576daa 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -2630,7 +2630,7 @@ static boolean P_CanSave(void)
 {
 	// Saving is completely ignored under these conditions:
 	if ((cursaveslot < 0) // Playing without saving
-		|| (!modifiedgame || savemoddata) // Game is modified
+		|| (modifiedgame && !savemoddata) // Game is modified
 		|| (netgame || multiplayer) // Not in single-player
 		|| (demoplayback || demorecording || metalrecording) // Currently in demo
 		|| (players[consoleplayer].lives <= 0) // Completely dead