diff --git a/src/plugins/qmldesigner/core/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/core/metainfo/nodemetainfo.cpp
index 6cdc376ccea06068359c2790c2a9b0cffc5b791f..b63a1a991dfd6a9d10dffb113141f42773511ab0 100644
--- a/src/plugins/qmldesigner/core/metainfo/nodemetainfo.cpp
+++ b/src/plugins/qmldesigner/core/metainfo/nodemetainfo.cpp
@@ -176,7 +176,9 @@ QObject *NodeMetaInfo::createInstance(QDeclarativeContext *context) const
         // qml component
         // TODO: This is maybe expensive ...
         QDeclarativeComponent component(context->engine(), QUrl::fromLocalFile(m_data->qmlFile));
-        object = component.create(new QDeclarativeContext(context));
+        QDeclarativeContext *newContext =  new QDeclarativeContext(context);
+        object = component.create(newContext);
+        newContext->setParent(object);
     } else {
         // primitive
         object = QDeclarativeMetaType::qmlType(typeName().toAscii(), minorVersion(), majorVersion())->create();