diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
index 6f8f71f7352b4afa80727c89b7fd7770dfdfc7e0..e578938a9474b933a0b91da4cae79242a8db28c7 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
@@ -258,6 +258,7 @@ void NodeInstanceServer::clearScene(const ClearSceneCommand &/*command*/)
 
 void NodeInstanceServer::removeInstances(const RemoveInstancesCommand &command)
 {
+    ServerNodeInstance oldState = activeStateInstance();
     if (activeStateInstance().isValid())
         activeStateInstance().deactivateState();
 
@@ -265,9 +266,8 @@ void NodeInstanceServer::removeInstances(const RemoveInstancesCommand &command)
         removeInstanceRelationsip(instanceId);
     }
 
-    if (activeStateInstance().isValid())
-        activeStateInstance().activateState();
-
+    if (oldState.isValid())
+        oldState.activateState();
 
     refreshBindings();
     startRenderTimer();