Index: src/network/network_server.cpp =================================================================== --- src/network/network_server.cpp (revision 26041) +++ src/network/network_server.cpp (working copy) @@ -113,6 +113,12 @@ if (this->mutex != NULL) this->mutex->SendSignal(); if (this->mutex != NULL) this->mutex->EndCritical(); + + /* Make sure the saving is completely cancelled. Yes, + * we need to handle the save finish as well as the + * next connection might just be requesting a map. */ + WaitTillSaved(); + ProcessAsyncSaveFinish(); } /** @@ -236,13 +242,6 @@ this->savegame->Destroy(); this->savegame = NULL; } - - /* Make sure the saving is completely cancelled. - * Yes, we need to handle the save finish as well - * as the next connection in this "loop" might - * just be requesting the map and such. */ - WaitTillSaved(); - ProcessAsyncSaveFinish(); } Packet *ServerNetworkGameSocketHandler::ReceivePacket() @@ -622,8 +621,6 @@ this->savegame->Destroy(); this->savegame = NULL; - WaitTillSaved(); - /* Set the status to DONE_MAP, no we will wait for the client * to send it is ready (maybe that happens like never ;)) */ this->status = STATUS_DONE_MAP;