diff --git a/common/server_protocolhandler.cpp b/common/server_protocolhandler.cpp index bfb81787..b7f2a20e 100644 --- a/common/server_protocolhandler.cpp +++ b/common/server_protocolhandler.cpp @@ -25,8 +25,14 @@ Server_ProtocolHandler::~Server_ProtocolHandler() QMapIterator > gameIterator(games); while (gameIterator.hasNext()) { - Server_Player *p = gameIterator.next().value().second; - p->setProtocolHandler(0); + gameIterator.next(); + Server_Game *g = gameIterator.value().first; + Server_Player *p = gameIterator.value().second; + + if (authState == UnknownUser) + g->removePlayer(p); + else + p->setProtocolHandler(0); } QMapIterator chatChannelIterator(chatChannels);