Index: binary-improvements/7dtd-server-fixes/src/AllocsLogFunctions.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/AllocsLogFunctions.cs	(revision 158)
+++ binary-improvements/7dtd-server-fixes/src/AllocsLogFunctions.cs	(revision 159)
@@ -29,5 +29,5 @@
 				);
 
-				PersistentContainer.Instance.Players[steamId].SetOnline(ci);
+				PersistentContainer.Instance.Players [steamId].SetOnline (ci);
 				PersistentData.PersistentContainer.Instance.Save ();
 			} catch (Exception e) {
@@ -36,9 +36,10 @@
 		}
 
-		public static void PlayerDisconnected (GameManager manager, int _clientId) {
+		public static void PlayerDisconnected (ConnectionManager manager, int _clientId, bool _bShutdown)
+		{
 			try {
-				Player p = PersistentContainer.Instance.Players.GetPlayerByClientId(_clientId);
+				Player p = PersistentContainer.Instance.Players.GetPlayerByClientId (_clientId);
 				if (p != null) {
-					p.SetOffline();
+					p.SetOffline ();
 				}
 				PersistentData.PersistentContainer.Instance.Save ();
Index: binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs	(revision 158)
+++ binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs	(revision 159)
@@ -38,5 +38,5 @@
 		{
 			foreach (Player p in players.Values) {
-				if (p.ClientInfo.clientId == _clientid) {
+				if (p.ClientInfo != null && p.ClientInfo.clientId == _clientid) {
 					return p;
 				}
