diff --git a/engine/server/application/CentralServer/src/shared/CentralServer.cpp b/engine/server/application/CentralServer/src/shared/CentralServer.cpp index 8034bbdb..89562972 100755 --- a/engine/server/application/CentralServer/src/shared/CentralServer.cpp +++ b/engine/server/application/CentralServer/src/shared/CentralServer.cpp @@ -3006,12 +3006,12 @@ void CentralServer::setTaskManager(TaskConnection * newTaskManager) void CentralServer::removePlanetServer(const PlanetServerConnection * p) { - for (std::map::iterator i = m_planetServers.begin(); i != m_planetServers.end(); ++i) + for (std::map::iterator i = m_planetServers.begin(); i != m_planetServers.end();) { if ((*i).second == p) { DEBUG_REPORT_LOG(true,("Central lost connection to Planet Server %s\n",p->getSceneId().c_str())); - m_planetServers.erase(i); + i = m_planetServers.erase(i); if (isPreloadFinished()) m_timeClusterWentIntoLoadingState = 0; @@ -3020,6 +3020,10 @@ void CentralServer::removePlanetServer(const PlanetServerConnection * p) return; } + else + { + ++i; + } } }