diff --git a/src/servers/registrar/ShutdownProcess.cpp b/src/servers/registrar/ShutdownProcess.cpp index c83b35014e..62eef2b646 100644 --- a/src/servers/registrar/ShutdownProcess.cpp +++ b/src/servers/registrar/ShutdownProcess.cpp @@ -1456,11 +1456,16 @@ ShutdownProcess::_QuitApps(AppInfoList& list, bool systemApps) char appName[B_FILE_NAME_LENGTH]; { BAutolock _(fWorkerLock); - if (!list.IsEmpty()) { + while (!list.IsEmpty()) { RosterAppInfo* info = *list.It(); team = info->team; port = info->port; strcpy(appName, info->ref.name); + + if (info->IsRunning()) + break; + list.RemoveInfo(info); + delete info; } }