diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp
index 8c1443c26554831726c59b301339e96bf72dbe4a..486075eb16fee524fac5db35d376ddffba5c2a58 100644
--- a/src/plugins/projectexplorer/projecttreewidget.cpp
+++ b/src/plugins/projectexplorer/projecttreewidget.cpp
@@ -178,7 +178,11 @@ void ProjectTreeWidget::foldersAboutToBeRemoved(FolderNode *, const QList<Folder
     while(n) {
         if (FolderNode *fn = qobject_cast<FolderNode *>(n)) {
             if (list.contains(fn)) {
-                m_explorer->setCurrentNode(n->projectNode());
+                ProjectNode *pn = n->projectNode();
+                // Make sure the node we are switching too isn't going to be removed also
+                while (list.contains(pn))
+                    pn = pn->parentFolderNode()->projectNode();
+                m_explorer->setCurrentNode(pn);
                 break;
             }
         }