diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp
index 23432b69d68003ae3aeb5ee325069c01094ec5a5..8962422566c2eeb38d3beacd96994e07a6f0dc00 100644
--- a/src/plugins/projectexplorer/project.cpp
+++ b/src/plugins/projectexplorer/project.cpp
@@ -177,17 +177,20 @@ bool Project::removeTarget(Target *target)
     if (bm->isBuilding(target))
         return false;
 
-    emit aboutToRemoveTarget(target);
-
-    d->m_targets.removeOne(target);
-
-    emit removedTarget(target);
     if (target == activeTarget()) {
-        if (d->m_targets.isEmpty())
+        if (d->m_targets.size() == 1) {
             setActiveTarget(0);
-        else
+        } else if (d->m_targets.first() == target) {
+            setActiveTarget(d->m_targets.at(1));
+        } else {
             setActiveTarget(d->m_targets.at(0));
+        }
     }
+
+    emit aboutToRemoveTarget(target);
+    d->m_targets.removeOne(target);
+    emit removedTarget(target);
+
     delete target;
     return true;
 }