diff --git a/src/plugins/qmldesigner/designercore/instances/objectnodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/objectnodeinstance.cpp
index f0df1560c101ad90e6fb38c45e5110033fda4feb..e52ca995d7c54c2b4bedc6a6782633ab25830245 100644
--- a/src/plugins/qmldesigner/designercore/instances/objectnodeinstance.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/objectnodeinstance.cpp
@@ -123,13 +123,15 @@ void ObjectNodeInstance::destroy()
 {
     if (deleteHeldInstance()) {
         // Remove from old property
-        if (object() && modelNode().isValid() && modelNode().parentProperty().isValid()) {
+        if (object()) {
             setId(QString());
-            NodeAbstractProperty parentProperty = modelNode().parentProperty();
-            ModelNode parentNode = parentProperty.parentModelNode();
-            if (parentNode.isValid() && nodeInstanceView()->hasInstanceForNode(parentNode)) {
-                NodeInstance parentInstance = nodeInstanceView()->instanceForNode(parentNode);
-                reparent(parentInstance, parentProperty.name(), NodeInstance() , QString());
+            if (modelNode().isValid() && modelNode().parentProperty().isValid()) {
+                NodeAbstractProperty parentProperty = modelNode().parentProperty();
+                ModelNode parentNode = parentProperty.parentModelNode();
+                if (parentNode.isValid() && nodeInstanceView()->hasInstanceForNode(parentNode)) {
+                    NodeInstance parentInstance = nodeInstanceView()->instanceForNode(parentNode);
+                    reparent(parentInstance, parentProperty.name(), NodeInstance() , QString());
+                }
             }
         }