diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
index 45bfe607bd46d760a3d111c4990b2ed66b56700f..47e2829c876b02011f42cb0bfdd71ffeed6a12a0 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
@@ -1014,11 +1014,25 @@ QList<ServerNodeInstance> NodeInstanceServer::setupScene(const CreateSceneComman
             instanceForId(container.instanceId()).setId(container.id());
     }
 
-    foreach(const PropertyValueContainer &container, command.valueChanges())
-        setInstancePropertyVariant(container);
+    foreach(const PropertyValueContainer &container, command.valueChanges()) {
+        if (container.isDynamic())
+            setInstancePropertyVariant(container);
+    }
 
-    foreach(const PropertyBindingContainer &container, command.bindingChanges())
-        setInstancePropertyBinding(container);
+    foreach(const PropertyValueContainer &container, command.valueChanges()) {
+        if (!container.isDynamic())
+            setInstancePropertyVariant(container);
+    }
+
+    foreach(const PropertyBindingContainer &container, command.bindingChanges()) {
+        if (container.isDynamic())
+            setInstancePropertyBinding(container);
+    }
+
+    foreach(const PropertyBindingContainer &container, command.bindingChanges()) {
+        if (!container.isDynamic())
+            setInstancePropertyBinding(container);
+    }
 
     foreach(ServerNodeInstance instance, instanceList)
         instance.doComponentComplete();