Index: client/Client/main.cpp
===================================================================
--- client/Client/main.cpp	(revision e98426d0f6f630912f6e53539347d7e91a0c27f1)
+++ client/Client/main.cpp	(revision 3476207091fdaa1074da644c2170fc7a8a140202)
@@ -439,16 +439,4 @@
             int drawPosition = 0;
 
-            switch (currentPlayer->team) {
-            case -1:
-               drawPosition = 200;
-               break;
-            case 0:
-               drawPosition = 400;
-               break;
-            case 1:
-               drawPosition = 600;
-               break;
-            }
-
             map<unsigned int, Player*> gamePlayers = game->getPlayers();
             map<unsigned int, Player*>::iterator itPlayers;
@@ -456,4 +444,16 @@
             int i=0;
             for (itPlayers = gamePlayers.begin(); itPlayers != gamePlayers.end(); itPlayers++) {
+               switch (itPlayers->second->team) {
+               case -1:
+                  drawPosition = 200;
+                  break;
+               case 0:
+                  drawPosition = 400;
+                  break;
+               case 1:
+                  drawPosition = 600;
+                  break;
+               }
+
                oss << itPlayers->second->name << endl;
                al_draw_text(font, al_map_rgb(0, 255, 0), drawPosition, 135+i*15, ALLEGRO_ALIGN_LEFT, oss.str().c_str());
@@ -845,5 +845,4 @@
                state = STATE_GAME_LOBBY;
                wndCurrent = wndGameLobby;
-               mapPlayers[curPlayerId]->team = -1;
 
                msgTo.type = MSG_TYPE_JOIN_GAME_ACK;
@@ -954,4 +953,6 @@
                p.deserialize(msg.buffer);
                cout << "Deserialized player" << endl;
+               cout << "player team: " << p.team << endl;
+               cout << "current player team: " << currentPlayer->team << endl;
                p.timeLastUpdated = getCurrentMillis();
                p.isChasing = false;
@@ -966,5 +967,5 @@
                   mapPlayers[p.getId()] = new Player(p);
 
-               game->addPlayer(mapPlayers[p.getId()]);
+               game->addPlayer(mapPlayers[p.getId()], false);
 
                break;
@@ -1369,4 +1370,9 @@
    cout << "joining waiting area" << endl;
    currentPlayer->team = -1;
+
+   msgTo.type = MSG_TYPE_JOIN_TEAM;
+   memcpy(msgTo.buffer, &(currentPlayer->team), 4);
+
+   msgProcessor.sendMessage(&msgTo, &server);
 }
 
@@ -1374,4 +1380,9 @@
    cout << "joining blue team" << endl;
    currentPlayer->team = 0;
+
+   msgTo.type = MSG_TYPE_JOIN_TEAM;
+   memcpy(msgTo.buffer, &(currentPlayer->team), 4);
+
+   msgProcessor.sendMessage(&msgTo, &server);
 }
 
@@ -1379,4 +1390,9 @@
    cout << "joining red team" << endl;
    currentPlayer->team = 1;
+
+   msgTo.type = MSG_TYPE_JOIN_TEAM;
+   memcpy(msgTo.buffer, &(currentPlayer->team), 4);
+
+   msgProcessor.sendMessage(&msgTo, &server);
 }
 
