Index: TFP-WebServer/WebServer/src/ModApi.cs
===================================================================
--- TFP-WebServer/WebServer/src/ModApi.cs	(revision 499)
+++ TFP-WebServer/WebServer/src/ModApi.cs	(revision 500)
@@ -12,5 +12,5 @@
 		public void InitMod (Mod _modInstance) {
 			ModEvents.GameStartDone.RegisterHandler (GameStartDone);
-			ModEvents.GameShutdown.RegisterHandler (GameShutdown);
+			ModEvents.WorldShuttingDown.RegisterHandler (WorldShuttingDown);
 			modInstance = _modInstance;
 
@@ -31,6 +31,6 @@
 		}
 
-		private void GameShutdown () {
-			webInstance?.Shutdown ();
+		private void WorldShuttingDown () {
+			webInstance?.Disconnect ();
 		}
 	}
Index: TFP-WebServer/WebServer/src/Web.cs
===================================================================
--- TFP-WebServer/WebServer/src/Web.cs	(revision 499)
+++ TFP-WebServer/WebServer/src/Web.cs	(revision 500)
@@ -30,4 +30,6 @@
 		private readonly AsyncCallback handleRequestDelegate;
 
+		private bool shutdown;
+
 		public Web (string _modInstancePath) {
 			try {
@@ -150,15 +152,19 @@
 
 		public void Disconnect () {
+			if (shutdown) {
+				return;
+			}
+
+			shutdown = true;
+			
 			try {
+				foreach (AbsHandler handler in handlers) {
+					handler.Shutdown ();
+				}
+
 				listener.Stop ();
 				listener.Close ();
 			} catch (Exception e) {
 				Log.Out ($"[Web] Error in Web.Disconnect: {e}");
-			}
-		}
-
-		public void Shutdown () {
-			foreach (AbsHandler handler in handlers) {
-				handler.Shutdown ();
 			}
 		}
