diff --git a/src/p_setup.c b/src/p_setup.c
index b16e13faad56535afaca2a46bc76f511aa2ec614..2fd7ba5b095207db4cd1838bbaa1e17f693f85ef 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -3756,7 +3756,7 @@ boolean P_LoadLevel(boolean fromnetsave)
 		if (!lastmaploaded) // Start a new game?
 		{
 			// I'd love to do this in the menu code instead of here, but everything's a mess and I can't guarantee saving proper player struct info before the first act's started. You could probably refactor it, but it'd be a lot of effort. Easier to just work off known good code. ~toast 22/06/2020
-			if (!(ultimatemode || netgame || multiplayer || demoplayback || demorecording || metalrecording || modeattacking)
+			if (!(ultimatemode || netgame || multiplayer || demoplayback || demorecording || metalrecording || modeattacking || marathonmode)
 			&& (!modifiedgame || savemoddata) && cursaveslot > 0)
 				G_SaveGame((UINT32)cursaveslot, gamemap);
 			// If you're looking for saving sp file progression (distinct from G_SaveGameOver), check G_DoCompleted.