diff --git a/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp b/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp
index 7ccd6a9bc11ec18dbb106f2a9dcf3fbede4c6fbd..2caf80028f74fe5197bed8dd64c7fdbdc0ffacb7 100644
--- a/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp
+++ b/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp
@@ -112,13 +112,13 @@ static ModelNode resolveBinding(const QString &binding, ModelNode currentNode, A
             else
                 return ModelNode(); //binding not valid
         } else if (currentNode.hasProperty(element.toUtf8())) {
-            if (currentNode.property(element.toUtf8()).isNodeProperty()) {
+            if (currentNode.property(element.toUtf8()).isNodeProperty())
                 currentNode = currentNode.nodeProperty(element.toUtf8()).modelNode();
-            } else {
+            else if (view->hasId(element))
                 currentNode = view->modelNodeForId(element); //id
-                if (!currentNode.isValid())
-                    return ModelNode(); //binding not valid
-            }
+            else
+                return ModelNode(); //binding not valid
+
         } else {
             currentNode = view->modelNodeForId(element); //id
         }
@@ -192,9 +192,8 @@ QList<ModelNode> BindingProperty::resolveToModelNodeList() const
         string.remove(0, 1);
         QStringList simplifiedList = commaSeparatedSimplifiedStringList(string);
         foreach (const QString &nodeId, simplifiedList) {
-            ModelNode modelNode = view()->modelNodeForId(nodeId);
-            if (modelNode.isValid())
-                returnList.append(modelNode);
+            if (view()->hasId(nodeId))
+                returnList.append(view()->modelNodeForId(nodeId));
         }
     }
     return returnList;