diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
index 6c424c149477ac6f8da524137996dad6f694070b..7e29dfb93e4faaf31c42d79944d3dc109d383ebe 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
@@ -125,7 +125,8 @@ void FormEditorView::setupFormEditorItemTree(const QmlItemNode &qmlItemNode)
     m_scene->addFormEditorItem(qmlItemNode);
 
     foreach (const QmlObjectNode &nextNode, qmlItemNode.allDirectSubNodes()) //TODO instance children
-        if (QmlItemNode(nextNode).isValid())
+        //If the node has source for components/custom parsers we ignore it.
+        if (QmlItemNode(nextNode).isValid() && nextNode.modelNode().nodeSourceType() == ModelNode::NodeWithoutSource)
             setupFormEditorItemTree(nextNode.toQmlItemNode());
 }