Index: binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs	(revision 171)
+++ binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs	(revision 172)
@@ -13,4 +13,6 @@
 		private readonly HttpListener _listener = new HttpListener ();
 		private Dictionary<string, PathHandler> handlers = new Dictionary<string, PathHandler> ();
+		private bool authEnabled = false;
+		private string realm = "7dtd Admin Panel";
 
 		public Web (int port)
@@ -26,7 +28,9 @@
 
 				_listener.Prefixes.Add (String.Format ("http://*:{0}/", port));
-				if (File.Exists (Application.dataPath + "/../webserver/protect"))
+				authEnabled = File.Exists (Application.dataPath + "/../webserver/protect");
+				if (authEnabled)
 					_listener.AuthenticationSchemes = AuthenticationSchemes.Basic;
 				_listener.Start ();
+				_listener.Realm = realm;
 
 				ThreadPool.QueueUserWorkItem ((o) =>
@@ -45,5 +49,5 @@
 				);
 
-				Log.Out ("Started Webserver on " + port + " (authentication " + (_listener.AuthenticationSchemes == AuthenticationSchemes.Basic ? "enabled" : "disabled") + ")");
+				Log.Out ("Started Webserver on " + port + " (authentication " + (authEnabled ? "enabled" : "disabled") + ")");
 			} catch (Exception e) {
 				Log.Out ("Error in Web.ctor: " + e);
@@ -58,18 +62,23 @@
 				HttpListenerBasicIdentity user = Authorize (ctx);
 
-				if (ctx.Request.Url.AbsolutePath.Length < 2) {
-					handlers ["/index.htm"].HandleRequest (ctx.Request, ctx.Response, user);
-					return;
-				} else {
-					foreach (KeyValuePair<string, PathHandler> kvp in handlers) {
-						if (ctx.Request.Url.AbsolutePath.StartsWith (kvp.Key)) {
-							kvp.Value.HandleRequest (ctx.Request, ctx.Response, user);
-							return;
+				if (!authEnabled || (user.Name.ToLower ().Equals ("admin") && user.Password.Equals (GamePrefs.GetString (EnumGamePrefs.ControlPanelPassword)))) {
+					if (ctx.Request.Url.AbsolutePath.Length < 2) {
+						handlers ["/index.htm"].HandleRequest (ctx.Request, ctx.Response, user);
+						return;
+					} else {
+						foreach (KeyValuePair<string, PathHandler> kvp in handlers) {
+							if (ctx.Request.Url.AbsolutePath.StartsWith (kvp.Key)) {
+								kvp.Value.HandleRequest (ctx.Request, ctx.Response, user);
+								return;
+							}
 						}
 					}
+
+					Log.Out ("Error in Web.HandleRequest(): No handler found for path \"" + ctx.Request.Url.AbsolutePath + "\"");
+					ctx.Response.StatusCode = (int)HttpStatusCode.NotFound;
+				} else {
+					ctx.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
+					ctx.Response.Headers ["WWW-Authenticate"] = "Basic realm=\"" + realm + "\"";
 				}
-
-				Log.Out ("Error in Web.HandleRequest(): No handler found for path \"" + ctx.Request.Url.AbsolutePath + "\"");
-				ctx.Response.StatusCode = (int)HttpStatusCode.NotFound;
 
 //				byte[] buf = Encoding.UTF8.GetBytes ("Hello World");
Index: binary-improvements/bin/Release/7dtd-server-fixes_version.txt
===================================================================
--- binary-improvements/bin/Release/7dtd-server-fixes_version.txt	(revision 171)
+++ binary-improvements/bin/Release/7dtd-server-fixes_version.txt	(revision 172)
@@ -1,1 +1,1 @@
-Version:       0.92.5361.28833
+Version:       0.92.5361.41834
