Index: server/server.cpp
===================================================================
--- server/server.cpp	(revision 48801afdbe8c90d082871e29fc4e59ba3e65686d)
+++ server/server.cpp	(revision 6ba31d2ff1a8613a8e2f716f8712780275d56485)
@@ -221,5 +221,7 @@
                memcpy(serverMsg.buffer, &numPlayers, 4);
                strcpy(serverMsg.buffer+4, game->getName().c_str());
-               msgProcessor.broadcastMessage(serverMsg, mapPlayers);
+
+               // only send this to players in the game
+               msgProcessor.broadcastMessage(serverMsg, game->getPlayers());
 
                delete itGames->second;
@@ -840,4 +842,22 @@
          msgProcessor.broadcastMessage(serverMsg, players);
 
+         // send a GAME_INFO message to all players not in the game so they delete it from their lobby
+         map<unsigned int, Player*> playersNotInGame;
+         map<unsigned int, Player*>::iterator it;
+         
+         for (it = mapPlayers.begin(); it != mapPlayers.end(); it++) {
+             if (players.count(it->first) == 0)
+                 playersNotInGame[it->first] = it->second;
+         }
+
+         cout << "Sending game info to " << playersNotInGame.size() << " players not in the currently started game" << endl;
+
+         int numPlayers = 0;
+         serverMsg.type = MSG_TYPE_GAME_INFO;
+         memcpy(serverMsg.buffer, &numPlayers, 4);
+         strcpy(serverMsg.buffer+4, p->currentGame->getName().c_str());
+
+         msgProcessor.broadcastMessage(serverMsg, playersNotInGame);
+
          break;
       }
