diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index 54f6823242413b1046ed0f695c9e81ded93594fb..9a287b44e95f50a0324cbe7ddfcfe341226cf5d9 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -771,7 +771,7 @@ void ScopeChain::update()
     foreach (QmlComponentChain *parent, qmlComponentScope.instantiatingComponents)
         parent->add(&_all);
 
-    if (qmlComponentScope.rootObject)
+    if (qmlComponentScope.rootObject && ! qmlScopeObjects.contains(qmlComponentScope.rootObject))
         _all += qmlComponentScope.rootObject;
     _all += qmlScopeObjects;
     _all += qmlComponentScope.functionScopes;
diff --git a/src/libs/qmljs/qmljsscopebuilder.cpp b/src/libs/qmljs/qmljsscopebuilder.cpp
index 4f3f6fa1233145143957465c716849d5693aea12..18c8dcf1b8c73e7434fc7cb3272c9fa852122a97 100644
--- a/src/libs/qmljs/qmljsscopebuilder.cpp
+++ b/src/libs/qmljs/qmljsscopebuilder.cpp
@@ -68,8 +68,7 @@ void ScopeBuilder::setQmlScopeObject(Node *node)
 
     const ObjectValue *scopeObject = _doc->bind()->findQmlObject(node);
     if (scopeObject) {
-        if (scopeObject != scopeChain.qmlComponentScope.rootObject)
-            scopeChain.qmlScopeObjects += scopeObject;
+        scopeChain.qmlScopeObjects += scopeObject;
     }
 
 #ifndef NO_DECLARATIVE_BACKEND