summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
Diffstat (limited to 'src/network')
-rw-r--r--src/network/network_server.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp
index 7e870d1c3..463db6855 100644
--- a/src/network/network_server.cpp
+++ b/src/network/network_server.cpp
@@ -181,8 +181,12 @@ ServerNetworkGameSocketHandler::~ServerNetworkGameSocketHandler()
if (this->savegame != NULL) this->savegame->cs = NULL;
if (this->savegame_mutex != NULL) this->savegame_mutex->EndCritical();
- /* Make sure the saving is completely cancelled. */
- if (this->savegame != NULL) WaitTillSaved();
+ /* 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();
while (this->savegame_packets != NULL) {
Packet *p = this->savegame_packets->next;