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