Index: /binary-improvements/7dtd-server-fixes/src/JSON/JSONNull.cs
===================================================================
--- /binary-improvements/7dtd-server-fixes/src/JSON/JSONNull.cs	(revision 188)
+++ /binary-improvements/7dtd-server-fixes/src/JSON/JSONNull.cs	(revision 188)
@@ -0,0 +1,31 @@
+using System;
+
+namespace AllocsFixes.JSON
+{
+	public class JSONNull : JSONNode
+	{
+		public JSONNull ()
+		{
+		}
+
+		public override string ToString (bool prettyPrint = false, int currentLevel = 0)
+		{
+			return "null";
+		}
+
+		public static JSONNull Parse (string json, ref int offset)
+		{
+			//Log.Out ("ParseNull enter (" + offset + ")");
+
+			if (json.Substring (offset, 4).Equals ("null")) {
+				//Log.Out ("JSON:Parsed Null");
+				offset += 4;
+				return new JSONNull ();
+			} else {
+				throw new MalformedJSONException ("No valid null value found");
+			}
+		}
+
+	}
+}
+
Index: /binary-improvements/7dtd-server-fixes/src/JSON/MalformedJSONException.cs
===================================================================
--- /binary-improvements/7dtd-server-fixes/src/JSON/MalformedJSONException.cs	(revision 188)
+++ /binary-improvements/7dtd-server-fixes/src/JSON/MalformedJSONException.cs	(revision 188)
@@ -0,0 +1,25 @@
+using System;
+using System.Runtime.Serialization;
+
+namespace AllocsFixes.JSON
+{
+	public class MalformedJSONException : ApplicationException
+	{
+		public MalformedJSONException ()
+		{
+		}
+
+		public MalformedJSONException (string message) : base(message)
+		{
+		}
+
+		public MalformedJSONException (string message, System.Exception inner) : base(message, inner)
+		{
+		}
+ 
+		protected MalformedJSONException (SerializationInfo info, StreamingContext context) : base(info, context)
+		{
+		}
+	}
+}
+
Index: /binary-improvements/7dtd-server-fixes/src/JSON/Parser.cs
===================================================================
--- /binary-improvements/7dtd-server-fixes/src/JSON/Parser.cs	(revision 188)
+++ /binary-improvements/7dtd-server-fixes/src/JSON/Parser.cs	(revision 188)
@@ -0,0 +1,57 @@
+using System;
+using System.Text;
+
+namespace AllocsFixes.JSON
+{
+	public class Parser
+	{
+
+		public static JSONNode Parse (string json)
+		{
+			int offset = 0;
+			return ParseInternal (json, ref offset);
+		}
+
+		public static JSONNode ParseInternal (string json, ref int offset)
+		{
+			SkipWhitespace (json, ref offset);
+			//Log.Out ("ParseInternal (" + offset + "): Decide on: '" + json [offset] + "'");
+			switch (json [offset]) {
+				case '[':
+					return JSONArray.Parse (json, ref offset);
+				case '{':
+					return JSONObject.Parse (json, ref offset);
+				case '"':
+					return JSONString.Parse (json, ref offset);
+				case 't':
+				case 'f':
+					return JSONBoolean.Parse (json, ref offset);
+				case 'n':
+					return JSONNull.Parse (json, ref offset);
+				default:
+					return JSONNumber.Parse (json, ref offset);
+			}
+		}
+
+		public static void SkipWhitespace (string json, ref int offset)
+		{
+			//Log.Out ("SkipWhitespace (" + offset + "): '" + json [offset] + "'");
+			while (offset < json.Length) {
+				switch (json [offset]) {
+					case ' ':
+					case '\t':
+					case '\r':
+					case '\n':
+						offset++;
+						break;
+					default:
+						return;
+				}
+			}
+			throw new MalformedJSONException ("End of JSON reached before parsing finished");
+		}
+
+
+	}
+}
+
