Index: binary-improvements/7dtd-server-fixes/src/ChatHookExample.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/ChatHookExample.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/ChatHookExample.cs	(revision 326)
@@ -5,18 +5,17 @@
 
 		public static bool Hook (ClientInfo _cInfo, EChatType _type, string _message, string _playerName) {
-			if (!string.IsNullOrEmpty (_message)) {
-				if (_message.EqualsCaseInsensitive ("/alloc")) {
-					if (_cInfo != null) {
-						Log.Out ("Sent chat hook reply to {0}", _cInfo.playerId);
-						_cInfo.SendPackage (new NetPackageChat (EChatType.Whisper, -1, ANSWER, "", false, null));
-					} else {
-						Log.Error ("ChatHookExample: Argument _cInfo null on message: {0}", _message);
-					}
-
-					return false;
-				}
+			if (string.IsNullOrEmpty (_message) || !_message.EqualsCaseInsensitive ("/alloc")) {
+				return true;
 			}
 
-			return true;
+			if (_cInfo != null) {
+				Log.Out ("Sent chat hook reply to {0}", _cInfo.playerId);
+				_cInfo.SendPackage (new NetPackageChat (EChatType.Whisper, -1, ANSWER, "", false, null));
+			} else {
+				Log.Error ("ChatHookExample: Argument _cInfo null on message: {0}", _message);
+			}
+
+			return false;
+
 		}
 	}
Index: binary-improvements/7dtd-server-fixes/src/FileCache/MapTileCache.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/FileCache/MapTileCache.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/FileCache/MapTileCache.cs	(revision 326)
@@ -54,8 +54,10 @@
 			try {
 				lock (cache) {
-					if (cache [zoomlevel].filename != null) {
-						cache [zoomlevel].data = content;
-						File.WriteAllBytes (cache [zoomlevel].filename, content);
+					if (cache [zoomlevel].filename == null) {
+						return;
 					}
+
+					cache [zoomlevel].data = content;
+					File.WriteAllBytes (cache [zoomlevel].filename, content);
 				}
 			} catch (Exception e) {
Index: binary-improvements/7dtd-server-fixes/src/JSON/JSONNull.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/JSON/JSONNull.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/JSON/JSONNull.cs	(revision 326)
@@ -10,11 +10,11 @@
 			//Log.Out ("ParseNull enter (" + offset + ")");
 
-			if (json.Substring (offset, 4).Equals ("null")) {
-				//Log.Out ("JSON:Parsed Null");
-				offset += 4;
-				return new JSONNull ();
+			if (!json.Substring (offset, 4).Equals ("null")) {
+				throw new MalformedJSONException ("No valid null value found");
 			}
 
-			throw new MalformedJSONException ("No valid null value found");
+			//Log.Out ("JSON:Parsed Null");
+			offset += 4;
+			return new JSONNull ();
 		}
 	}
Index: binary-improvements/7dtd-server-fixes/src/JSON/JSONObject.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/JSON/JSONObject.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/JSON/JSONObject.cs	(revision 326)
@@ -104,4 +104,6 @@
 						//Log.Out ("JSON:Parsed Object: " + obj.ToString ());
 						return obj;
+					default:
+						break;
 				}
 			}
Index: binary-improvements/7dtd-server-fixes/src/LandClaimList.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/LandClaimList.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/LandClaimList.cs	(revision 326)
@@ -14,48 +14,50 @@
 			Dictionary<Player, List<Vector3i>> result = new Dictionary<Player, List<Vector3i>> ();
 
-			if (d != null) {
-				Dictionary<PersistentPlayerData, List<Vector3i>> owners =
-					new Dictionary<PersistentPlayerData, List<Vector3i>> ();
-				foreach (KeyValuePair<Vector3i, PersistentPlayerData> kvp in d) {
-					bool allowed = true;
-					if (_positionFilters != null) {
-						foreach (PositionFilter pf in _positionFilters) {
-							if (!pf (kvp.Key)) {
-								allowed = false;
-								break;
-							}
+			if (d == null) {
+				return result;
+			}
+
+			Dictionary<PersistentPlayerData, List<Vector3i>> owners =
+				new Dictionary<PersistentPlayerData, List<Vector3i>> ();
+			foreach (KeyValuePair<Vector3i, PersistentPlayerData> kvp in d) {
+				bool allowed = true;
+				if (_positionFilters != null) {
+					foreach (PositionFilter pf in _positionFilters) {
+						if (!pf (kvp.Key)) {
+							allowed = false;
+							break;
 						}
-					}
-
-					if (allowed) {
-						if (!owners.ContainsKey (kvp.Value)) {
-							owners.Add (kvp.Value, new List<Vector3i> ());
-						}
-
-						owners [kvp.Value].Add (kvp.Key);
 					}
 				}
 
-				foreach (KeyValuePair<PersistentPlayerData, List<Vector3i>> kvp in owners) {
-					Player p = PersistentContainer.Instance.Players [kvp.Key.PlayerId, false];
-					if (p == null) {
-						p = new Player (kvp.Key.PlayerId);
+				if (allowed) {
+					if (!owners.ContainsKey (kvp.Value)) {
+						owners.Add (kvp.Value, new List<Vector3i> ());
 					}
 
-					bool allowed = true;
-					if (_ownerFilters != null) {
-						foreach (OwnerFilter of in _ownerFilters) {
-							if (!of (p)) {
-								allowed = false;
-								break;
-							}
+					owners [kvp.Value].Add (kvp.Key);
+				}
+			}
+
+			foreach (KeyValuePair<PersistentPlayerData, List<Vector3i>> kvp in owners) {
+				Player p = PersistentContainer.Instance.Players [kvp.Key.PlayerId, false];
+				if (p == null) {
+					p = new Player (kvp.Key.PlayerId);
+				}
+
+				bool allowed = true;
+				if (_ownerFilters != null) {
+					foreach (OwnerFilter of in _ownerFilters) {
+						if (!of (p)) {
+							allowed = false;
+							break;
 						}
 					}
+				}
 
-					if (allowed) {
-						result.Add (p, new List<Vector3i> ());
-						foreach (Vector3i v in kvp.Value) {
-							result [p].Add (v);
-						}
+				if (allowed) {
+					result.Add (p, new List<Vector3i> ());
+					foreach (Vector3i v in kvp.Value) {
+						result [p].Add (v);
 					}
 				}
Index: binary-improvements/7dtd-server-fixes/src/LiveData/Animals.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/LiveData/Animals.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/LiveData/Animals.cs	(revision 326)
@@ -4,10 +4,7 @@
 
 		protected override EntityAnimal predicate (Entity _e) {
-			if (_e is EntityAnimal) {
-				EntityAnimal ea = (EntityAnimal) _e;
-
-				if (ea.IsAlive ()) {
-					return ea;
-				}
+			EntityAnimal ea = _e as EntityAnimal;
+			if (ea != null && ea.IsAlive ()) {
+				return ea;
 			}
 
Index: binary-improvements/7dtd-server-fixes/src/LiveData/Hostiles.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/LiveData/Hostiles.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/LiveData/Hostiles.cs	(revision 326)
@@ -4,8 +4,7 @@
 
 		protected override EntityEnemy predicate (Entity _e) {
-			if (_e is EntityEnemy) {
-				if (_e.IsAlive ()) {
-					return _e as EntityEnemy;
-				}
+			EntityEnemy enemy = _e as EntityEnemy;
+			if (enemy != null && enemy.IsAlive ()) {
+				return enemy;
 			}
 
Index: binary-improvements/7dtd-server-fixes/src/PersistentData/Attributes.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/PersistentData/Attributes.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/PersistentData/Attributes.cs	(revision 326)
@@ -5,5 +5,5 @@
 	public class Attributes {
 		private bool hideChatCommands;
-		private String hideChatCommandPrefix;
+		private string hideChatCommandPrefix;
 
 		public bool HideChatCommands {
Index: binary-improvements/7dtd-server-fixes/src/PersistentData/Inventory.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/PersistentData/Inventory.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/PersistentData/Inventory.cs	(revision 326)
@@ -58,29 +58,29 @@
 
 		private InvItem CreateInvItem (ItemValue _itemValue, int _count, int _playerId) {
-			if (_count > 0 && _itemValue != null && !_itemValue.Equals (ItemValue.None)) {
-				ItemClass itemClass = ItemClass.list [_itemValue.type];
-				int maxAllowed = itemClass.Stacknumber.Value;
-				string name = itemClass.GetItemName ();
-
-				if (_count > maxAllowed) {
-					Log.Out ("Player with ID " + _playerId + " has stack for \"" + name + "\" greater than allowed (" +
-					         _count + " > " + maxAllowed + ")");
-				}
-
-				InvItem item = null;
-				if (_itemValue.HasQuality) {
-					item = new InvItem (name, _count, _itemValue.Quality, _itemValue.MaxUseTimes, _itemValue.UseTimes);
-				} else {
-					item = new InvItem (name, _count, -1, _itemValue.MaxUseTimes, _itemValue.UseTimes);
-				}
-
-				item.icon = itemClass.GetIconName ();
-
-				item.iconcolor = AllocsUtils.ColorToHex (itemClass.GetIconTint ());
-
-				return item;
+			if (_count <= 0 || _itemValue == null || _itemValue.Equals (ItemValue.None)) {
+				return null;
 			}
 
-			return null;
+			ItemClass itemClass = ItemClass.list [_itemValue.type];
+			int maxAllowed = itemClass.Stacknumber.Value;
+			string name = itemClass.GetItemName ();
+
+			if (_count > maxAllowed) {
+				Log.Out ("Player with ID " + _playerId + " has stack for \"" + name + "\" greater than allowed (" +
+				         _count + " > " + maxAllowed + ")");
+			}
+
+			InvItem item;
+			if (_itemValue.HasQuality) {
+				item = new InvItem (name, _count, _itemValue.Quality, _itemValue.MaxUseTimes, _itemValue.UseTimes);
+			} else {
+				item = new InvItem (name, _count, -1, _itemValue.MaxUseTimes, _itemValue.UseTimes);
+			}
+
+			item.icon = itemClass.GetIconName ();
+
+			item.iconcolor = AllocsUtils.ColorToHex (itemClass.GetIconTint ());
+
+			return item;
 		}
 	}
Index: binary-improvements/7dtd-server-fixes/src/PersistentData/PersistentContainer.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/PersistentData/PersistentContainer.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/PersistentData/PersistentContainer.cs	(revision 326)
@@ -53,17 +53,19 @@
 
 		public static bool Load () {
-			if (File.Exists (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin")) {
-				try {
-					PersistentContainer obj;
-					Stream stream = File.Open (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin", FileMode.Open);
-					BinaryFormatter bFormatter = new BinaryFormatter ();
-					obj = (PersistentContainer) bFormatter.Deserialize (stream);
-					stream.Close ();
-					instance = obj;
-					return true;
-				} catch (Exception e) {
-					Log.Error ("Exception in PersistentContainer.Load");
-					Log.Exception (e);
-				}
+			if (!File.Exists (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin")) {
+				return false;
+			}
+
+			try {
+				PersistentContainer obj;
+				Stream stream = File.Open (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin", FileMode.Open);
+				BinaryFormatter bFormatter = new BinaryFormatter ();
+				obj = (PersistentContainer) bFormatter.Deserialize (stream);
+				stream.Close ();
+				instance = obj;
+				return true;
+			} catch (Exception e) {
+				Log.Error ("Exception in PersistentContainer.Load");
+				Log.Exception (e);
 			}
 
Index: binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs	(revision 326)
@@ -174,19 +174,21 @@
 
 		public void SetOffline () {
-			if (clientInfo != null) {
-				Log.Out ("Player set to offline: " + steamId);
-				lastOnline = DateTime.Now;
-				try {
-					Vector3i lastPos = new Vector3i (Entity.GetPosition ());
-					lastPositionX = lastPos.x;
-					lastPositionY = lastPos.y;
-					lastPositionZ = lastPos.z;
-					totalPlayTime += (long) (Time.timeSinceLevelLoad - Entity.CreationTimeSinceLevelLoad);
-				} catch (NullReferenceException) {
-					Log.Out ("Entity not available. Something seems to be wrong here...");
-				}
-
-				clientInfo = null;
-			}
+			if (clientInfo == null) {
+				return;
+			}
+
+			Log.Out ("Player set to offline: " + steamId);
+			lastOnline = DateTime.Now;
+			try {
+				Vector3i lastPos = new Vector3i (Entity.GetPosition ());
+				lastPositionX = lastPos.x;
+				lastPositionY = lastPos.y;
+				lastPositionZ = lastPos.z;
+				totalPlayTime += (long) (Time.timeSinceLevelLoad - Entity.CreationTimeSinceLevelLoad);
+			} catch (NullReferenceException) {
+				Log.Out ("Entity not available. Something seems to be wrong here...");
+			}
+
+			clientInfo = null;
 		}
 
@@ -206,11 +208,13 @@
 
 		private void UpdateProgression (PlayerDataFile _pdf) {
-			if (_pdf.progressionData.Length > 0) {
-				using (PooledBinaryReader pbr = MemoryPools.poolBinaryReader.AllocSync (false)) {
-					pbr.SetBaseStream (_pdf.progressionData);
-					Progression p = Progression.Read (pbr, null);
-					expToNextLevel = (uint) p.ExpToNextLevel;
-					level = p.Level;
-				}
+			if (_pdf.progressionData.Length <= 0) {
+				return;
+			}
+
+			using (PooledBinaryReader pbr = MemoryPools.poolBinaryReader.AllocSync (false)) {
+				pbr.SetBaseStream (_pdf.progressionData);
+				Progression p = Progression.Read (pbr, null);
+				expToNextLevel = (uint) p.ExpToNextLevel;
+				level = p.Level;
 			}
 		}
Index: binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs	(revision 325)
+++ binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs	(revision 326)
@@ -6,5 +6,5 @@
 	[Serializable]
 	public class Players {
-		private readonly Dictionary<string, Player> players = new Dictionary<string, Player> ();
+		private readonly Dictionary<string, Player> players = new CaseInsensitiveStringDictionary<Player> ();
 
 		public Player this [string steamId, bool create] {
@@ -18,12 +18,12 @@
 				}
 
-				if (create && steamId != null && steamId.Length == 17) {
-					Log.Out ("Created new player entry for ID: " + steamId);
-					Player p = new Player (steamId);
-					players.Add (steamId, p);
-					return p;
+				if (!create || steamId.Length != 17) {
+					return null;
 				}
 
-				return null;
+				Log.Out ("Created new player entry for ID: " + steamId);
+				Player p = new Player (steamId);
+				players.Add (steamId, p);
+				return p;
 			}
 		}
@@ -56,5 +56,5 @@
 			}
 
-			int entityId = -1;
+			int entityId;
 			if (int.TryParse (_nameOrId, out entityId)) {
 				foreach (KeyValuePair<string, Player> kvp in players) {
@@ -65,12 +65,11 @@
 			}
 
-			_nameOrId = _nameOrId.ToLower ();
 			foreach (KeyValuePair<string, Player> kvp in players) {
-				string name = kvp.Value.Name.ToLower ();
+				string name = kvp.Value.Name;
 				if (_ignoreColorCodes) {
 					name = Regex.Replace (name, "\\[[0-9a-fA-F]{6}\\]", "");
 				}
 
-				if (kvp.Value.IsOnline && name.Equals (_nameOrId)) {
+				if (kvp.Value.IsOnline && name.EqualsCaseInsensitive (_nameOrId)) {
 					return kvp.Key;
 				}
