diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp
index 623c848a3b77b20600d252e7f350a8a459ef0cb1..4f046fdd4bf8d4cf92e451186e86018771bee489 100644
--- a/src/plugins/qmldesigner/designercore/model/model.cpp
+++ b/src/plugins/qmldesigner/designercore/model/model.cpp
@@ -886,17 +886,28 @@ void ModelPrivate::notifyNodeOrderChanged(const InternalNodeListPropertyPointer
     bool resetModel = false;
     QString description;
 
+    try {
+        if (rewriterView())
+            rewriterView()->nodeOrderChanged(NodeListProperty(internalListPropertyPointer, model(), rewriterView()),
+                               ModelNode(internalNodePointer, model(), rewriterView()),
+                               oldIndex);
+    } catch (RewritingException &e) {
+        description = e.description();
+        resetModel = true;
+    }
+
     foreach (const QWeakPointer<AbstractView> &view, m_viewList) {
         Q_ASSERT(!view.isNull());
-        try {
-            view->nodeOrderChanged(NodeListProperty(internalListPropertyPointer, model(), view.data()),
+        view->nodeOrderChanged(NodeListProperty(internalListPropertyPointer, model(), view.data()),
                                    ModelNode(internalNodePointer, model(), view.data()),
                                    oldIndex);
-        } catch (RewritingException &e) {
-            description = e.description();
-            resetModel = true;
-        }
     }
+
+    if (nodeInstanceView())
+        nodeInstanceView()->nodeOrderChanged(NodeListProperty(internalListPropertyPointer, model(), nodeInstanceView()),
+                           ModelNode(internalNodePointer, model(), nodeInstanceView()),
+                           oldIndex);
+
     if (resetModel) {
         resetModelByRewriter(description);
     }