diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp
index c3ed48ab37371abf3c0ec441152a6544637fbb59..8f93153cb6f372228bb63c66387212e4f4d5bdd5 100644
--- a/src/plugins/qmldesigner/designercore/model/model.cpp
+++ b/src/plugins/qmldesigner/designercore/model/model.cpp
@@ -605,17 +605,16 @@ void ModelPrivate::notifyNodeAboutToBeRemoved(const InternalNode::Pointer &nodeP
         resetModel = true;
     }
 
-    if (nodeInstanceView()) {
-        ModelNode node(nodePointer, model(), nodeInstanceView());
-        nodeInstanceView()->nodeAboutToBeRemoved(node);
-    }
-
     foreach (const QWeakPointer<AbstractView> &view, m_viewList) {
         Q_ASSERT(view != 0);
         ModelNode node(nodePointer, model(), view.data());
         view->nodeAboutToBeRemoved(node);
     }
 
+    if (nodeInstanceView()) {
+        ModelNode node(nodePointer, model(), nodeInstanceView());
+        nodeInstanceView()->nodeAboutToBeRemoved(node);
+    }
 
     if (resetModel) {
         resetModelByRewriter(description);