diff --git a/src/g_game.c b/src/g_game.c
index b20157156b8c6b969e09ed028c703ad23a05395c..b974b87eaa37eae9d74540be5ea2c0793635db87 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -4498,7 +4498,10 @@ void G_SaveGame(UINT32 slot, INT16 mapnum)
 		P_SaveGame(mapnum);
 		if (marathonmode)
 		{
-			WRITEUINT32(save_p, marathontime);
+			UINT32 writetime = marathontime;
+			if (!(marathonmode & MA_INGAME))
+				marathontime += TICRATE*5; // live event backup penalty because we don't know how long it takes to get to the next map
+			WRITEUINT32(save_p, writetime);
 			WRITEUINT8(save_p, (marathonmode & ~MA_INIT));
 		}