diff --git a/src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp b/src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp
index 6ebcc111da43fd59257ac0e4ff2ad0656451c95c..ca1716200fe561fce9049fb4064c94d9f8be6ff2 100644
--- a/src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp
+++ b/src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp
@@ -152,13 +152,13 @@ void ObjectNodeInstance::setNodeInstance(NodeInstanceView *view)
 
 void ObjectNodeInstance::setId(const QString &id)
 {
-    object()->setObjectName(id);
-
     if (!id.isEmpty()) {
         context()->engine()->rootContext()->setContextProperty(id, object()); // will also force refresh of all bindings
-    } else {
-        context()->engine()->rootContext()->setContextProperty(id, 0);
+    } else if (!object()->objectName().isEmpty()) {
+        context()->engine()->rootContext()->setContextProperty(object()->objectName(), 0);
     }
+
+    object()->setObjectName(id);
 }
 
 bool ObjectNodeInstance::isQmlGraphicsItem() const