diff --git a/source/core/version.h b/source/core/version.h
index 0b1c6fe9b..3f5abfddf 100644
--- a/source/core/version.h
+++ b/source/core/version.h
@@ -72,12 +72,12 @@ const char *GetVersionString();
 #define MINSAVEVER_DN3D 10
 #define MINSAVEVER_BLD 11
 #define MINSAVEVER_SW 12
-#define MINSAVEVER_PS 14
+#define MINSAVEVER_PS 15
 
 #define SAVEVER_DN3D 11
 #define SAVEVER_BLD 11
 #define SAVEVER_SW 12
-#define SAVEVER_PS 14
+#define SAVEVER_PS 15
 #define OLD_SAVEGAME 1	// this is to keep writing out the old format in Blood, even when data has been refactored. 
 
 #define NETGAMEVERSION 1
diff --git a/source/games/exhumed/src/exhumed.cpp b/source/games/exhumed/src/exhumed.cpp
index 1033d3fa6..3e086e245 100644
--- a/source/games/exhumed/src/exhumed.cpp
+++ b/source/games/exhumed/src/exhumed.cpp
@@ -642,6 +642,7 @@ void SerializeState(FSerializer& arc)
             ("slipmode", bSlipMode)
             ("PlayClock", PlayClock)
             ("spiritsprite", pSpiritSprite)
+            .SparseArray("actors", exhumedActors, kMaxSprites, activeSprites)
             .EndObject();
     }
 }
diff --git a/source/games/exhumed/src/save.cpp b/source/games/exhumed/src/save.cpp
index 1f229e6f7..91a8498cb 100644
--- a/source/games/exhumed/src/save.cpp
+++ b/source/games/exhumed/src/save.cpp
@@ -73,6 +73,7 @@ void GameInterface::SerializeGameState(FSerializer& arc)
 
 		SerializeQueen(arc);
 		SerializeRat(arc);
+		arc.EndObject();
 	}
 	if (arc.isReading())
 	{
diff --git a/source/games/exhumed/src/view.cpp b/source/games/exhumed/src/view.cpp
index 73c63cc83..0224feebb 100644
--- a/source/games/exhumed/src/view.cpp
+++ b/source/games/exhumed/src/view.cpp
@@ -485,20 +485,23 @@ void Clip()
 
 void SerializeView(FSerializer& arc)
 {
-    arc("camerax", nCamerax)
-        ("cameray", nCameray)
-        ("cameraz", nCameraz)
-        ("touchfloor", bTouchFloor)
-        ("chunktotal", nChunkTotal)
-        ("cameraa", nCameraa)
-        ("camerapan", nCamerapan)
-        ("camera", bCamera)
-        ("viewz", viewz)
-        ("enemy", pEnemy)
-        ("enemypal", nEnemyPal)
-        .Array("vertpan", dVertPan, countof(dVertPan))
-        .Array("quake", nQuake, countof(nQuake))
-        .EndObject();
+    if (arc.BeginObject("view"))
+    {
+        arc("camerax", nCamerax)
+            ("cameray", nCameray)
+            ("cameraz", nCameraz)
+            ("touchfloor", bTouchFloor)
+            ("chunktotal", nChunkTotal)
+            ("cameraa", nCameraa)
+            ("camerapan", nCamerapan)
+            ("camera", bCamera)
+            ("viewz", viewz)
+            ("enemy", pEnemy)
+            ("enemypal", nEnemyPal)
+            .Array("vertpan", dVertPan, countof(dVertPan))
+            .Array("quake", nQuake, countof(nQuake))
+            .EndObject();
+    }
 }
 
 END_PS_NS