diff --git a/src/d_clisrv.c b/src/d_clisrv.c
index 0c6960236c64312924ef1f197abfec761e8ddfbc..bc09925391f920bad7d9ae4bc47b3364de36444d 100755
--- a/src/d_clisrv.c
+++ b/src/d_clisrv.c
@@ -3563,17 +3563,14 @@ static void HandleConnect(SINT8 node)
 			DEBFILE("new node joined\n");
 		}
 #ifndef NONET
-		if (netnodes[node].numplayerswaiting)
+		if ((gamestate == GS_LEVEL || gamestate == GS_INTERMISSION) && newnode)
 		{
-			if ((gamestate == GS_LEVEL || gamestate == GS_INTERMISSION) && newnode)
-			{
-				SV_SendSaveGame(node, false); // send a complete game state
-				DEBFILE("send savegame\n");
-			}
-			SV_AddWaitingPlayers(names[0], names[1]);
-			joindelay += cv_joindelay.value * TICRATE;
-			player_joining = true;
+			SV_SendSaveGame(node, false); // send a complete game state
+			DEBFILE("send savegame\n");
 		}
+		SV_AddWaitingPlayers(names[0], names[1]);
+		joindelay += cv_joindelay.value * TICRATE;
+		player_joining = true;
 #endif
 	}
 }