Index: client/Client/main.cpp
===================================================================
--- client/Client/main.cpp	(revision 402cf86857bd74889d5f5ddc68a7ee9ebd44c16a)
+++ client/Client/main.cpp	(revision 6c9bcdd776598f0b4c9d61b1db2b6abf28453d86)
@@ -356,5 +356,5 @@
                break;
             case ALLEGRO_KEY_S:  // pickup an item next to you
-               if (state == STATE_GAME) {
+               if (state == STATE_GAME || state == STATE_NEW_GAME) {
                   msgTo.type = MSG_TYPE_PICKUP_FLAG;
                   memcpy(msgTo.buffer, &curPlayerId, 4);
@@ -363,13 +363,9 @@
                break;
             case ALLEGRO_KEY_D:  // drop the current item
-               if (state == STATE_GAME) {
-                  // find the current player in the player list
-                  map<unsigned int, Player*>::iterator it;
+               if (state == STATE_GAME || state == STATE_NEW_GAME) {
                   Player* p = NULL;
-                  for(it = mapPlayers.begin(); it != mapPlayers.end(); it++)
-                  {
-                     if (it->second->id == curPlayerId)
-                        p = it->second;
-                  }
+                  try {
+                     p = mapPlayers.at(curPlayerId);
+                  } catch (const out_of_range& ex) {}
 
                   if (p != NULL) {
