diff --git a/src/servers/app/ServerWindow.cpp b/src/servers/app/ServerWindow.cpp index e6e8a139d8..dc8a2f5500 100644 --- a/src/servers/app/ServerWindow.cpp +++ b/src/servers/app/ServerWindow.cpp @@ -197,8 +197,10 @@ ServerWindow::~ServerWindow() fDesktop->RemoveWindow(fWindow); } - if (App() != NULL) + if (App() != NULL) { App()->RemoveWindow(this); + fServerApp = NULL; + } delete fWindow; diff --git a/src/servers/app/View.cpp b/src/servers/app/View.cpp index bb4bb92a7b..b496683d16 100644 --- a/src/servers/app/View.cpp +++ b/src/servers/app/View.cpp @@ -206,7 +206,7 @@ void View::DetachedFromWindow() { // remove view from local token space - if (fWindow != NULL) + if (fWindow != NULL && fWindow->ServerWindow()->App() != NULL) fWindow->ServerWindow()->App()->ViewTokens().RemoveToken(fToken); fWindow = NULL;