Index: server/server.cpp
===================================================================
--- server/server.cpp	(revision 092817adb027b80ee540b5b3e6c8f485cbda00e0)
+++ server/server.cpp	(revision 9c83610b7bea1f725f9a7238a002aa37b0e98075)
@@ -32,5 +32,5 @@
 bool processMessage(const NETWORK_MSG &clientMsg, const struct sockaddr_in &from, map<unsigned int, Player>& mapPlayers, unsigned int& unusedId, NETWORK_MSG &serverMsg);
 
-void updateUnusedId(unsigned int& id);
+void updateUnusedId(unsigned int& id, map<unsigned int, Player>& mapPlayers);
 
 // this should probably go somewhere in the common folder
@@ -94,5 +94,5 @@
    NETWORK_MSG clientMsg, serverMsg;
    map<unsigned int, Player> mapPlayers;
-   unsigned int unusedId = 0;
+   unsigned int unusedId = 1;
 
    //SSL_load_error_strings();
@@ -212,7 +212,7 @@
          {
             p->setAddr(from);
+            updateUnusedId(unusedId, mapPlayers);
             p->id = unusedId;
             mapPlayers[unusedId] = *p;
-            updateUnusedId(unusedId);
 
             strcpy(serverMsg.buffer, "Login successful. Enjoy chatting with other players.");
@@ -288,6 +288,7 @@
 }
 
-void updateUnusedId(unsigned int& id)
-{
-   id = 5;
-}
+void updateUnusedId(unsigned int& id, map<unsigned int, Player>& mapPlayers)
+{
+   while (mapPlayers.find(id) != mapPlayers.end())
+      id++;
+}
