diff --git a/source/glest_game/menu/menu_state_masterserver.cpp b/source/glest_game/menu/menu_state_masterserver.cpp index 6607a034..25932665 100644 --- a/source/glest_game/menu/menu_state_masterserver.cpp +++ b/source/glest_game/menu/menu_state_masterserver.cpp @@ -151,6 +151,10 @@ MenuStateMasterserver::MenuStateMasterserver(Program *program, MainMenu *mainMen MenuStateMasterserver::~MenuStateMasterserver() { clearServerLines(); + + BaseThread::shutdownAndWait(updateFromMasterserverThread); + delete updateFromMasterserverThread; + updateFromMasterserverThread = NULL; } void MenuStateMasterserver::clearServerLines(){ @@ -183,6 +187,8 @@ void MenuStateMasterserver::mouseClick(int x, int y, MouseButton mouseButton){ } else if(buttonReturn.mouseClick(x, y)){ soundRenderer.playFx(coreData.getClickSoundB()); + + BaseThread::shutdownAndWait(updateFromMasterserverThread); mainMenu->setState(new MenuStateRoot(program, mainMenu)); } else{