Index: binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs	(revision 174)
+++ binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs	(revision 182)
@@ -16,7 +16,17 @@
 		private string realm = "7dtd Admin Panel";
 
-		public Web (int port)
+		public Web ()
 		{
 			try {
+				int webPort = GamePrefs.GetInt (EnumGamePrefs.ControlPanelPort);
+				if (!GamePrefs.GetBool (EnumGamePrefs.ControlPanelEnabled) || webPort < 1 || webPort > 65533) {
+					Log.Out ("Webserver not started (ControlPanel not enabled or ControlPanelPort not within 1-65534)");
+					return;
+				}
+				if (!Directory.Exists (Application.dataPath + "/../webserver")) {
+					Log.Out ("Webserver not started (folder \"webserver\" not found in game folder)");
+					return;
+				}
+
 				if (!HttpListener.IsSupported)
 					throw new NotSupportedException ("Needs Windows XP SP2, Server 2003 or later.");
@@ -27,5 +37,5 @@
 				handlers.Add ("/api/", new ApiHandler ("/api/"));
 
-				_listener.Prefixes.Add (String.Format ("http://*:{0}/", port));
+				_listener.Prefixes.Add (String.Format ("http://*:{0}/", webPort + 2));
 				authEnabled = File.Exists (Application.dataPath + "/../webserver/protect");
 				if (authEnabled)
@@ -49,5 +59,8 @@
 				);
 
-				Log.Out ("Started Webserver on " + port + " (authentication " + (authEnabled ? "enabled" : "disabled") + ")");
+				NetTelnetServer.RegisterServer(this);
+
+
+				Log.Out ("Started Webserver on " + (webPort + 2) + " (authentication " + (authEnabled ? "enabled" : "disabled") + ")");
 			} catch (Exception e) {
 				Log.Out ("Error in Web.ctor: " + e);
