diff --git a/src/plugins/qmldesigner/designercore/designercore.pri b/src/plugins/qmldesigner/designercore/designercore.pri
index 6c480b8d17266896bef8294db841edaa7efbb0a7..a3f18853d80e3cf14ca32297e9d3dc18bbc5e281 100644
--- a/src/plugins/qmldesigner/designercore/designercore.pri
+++ b/src/plugins/qmldesigner/designercore/designercore.pri
@@ -117,7 +117,8 @@ SOURCES += $$PWD/model/abstractview.cpp \
     $$PWD/instances/informationcontainer.cpp \
     $$PWD/instances/changestatecommand.cpp \
     $$PWD/instances/nodeinstanceserverproxy.cpp \
-    $$PWD/instances/nodeinstanceclientproxy.cpp
+    $$PWD/instances/nodeinstanceclientproxy.cpp \
+    $$PWD/instances/addimportcommand.cpp
 HEADERS += $$PWD/include/corelib_global.h \
     $$PWD/include/abstractview.h \
     $$PWD/include/nodeinstanceview.h \
@@ -233,7 +234,8 @@ HEADERS += $$PWD/include/corelib_global.h \
     $$PWD/include/commondefines.h \
     $$PWD/instances/changestatecommand.h \
     $$PWD/instances/nodeinstanceserverproxy.h \
-    $$PWD/instances/nodeinstanceclientproxy.h
+    $$PWD/instances/nodeinstanceclientproxy.h \
+    $$PWD/instances/addimportcommand.h
 
 contains(CONFIG, plugin) {
   # If core.pri has been included in the qmldesigner plugin
diff --git a/src/plugins/qmldesigner/designercore/include/import.h b/src/plugins/qmldesigner/designercore/include/import.h
index ca5b6f79eec0a8205545f4571a27700987222058..40854beea3b5fe4a3420a1090955390e07970471 100644
--- a/src/plugins/qmldesigner/designercore/include/import.h
+++ b/src/plugins/qmldesigner/designercore/include/import.h
@@ -31,6 +31,7 @@
 #define IMPORT_H
 
 #include <QtCore/QString>
+#include <QStringList>
 
 #include "corelib_global.h"
 
@@ -39,8 +40,8 @@ namespace QmlDesigner {
 class CORESHARED_EXPORT Import
 {
 public:
-    static Import createLibraryImport(const QString &url, const QString &version = QString(), const QString &alias = QString());
-    static Import createFileImport(const QString &file, const QString &version = QString(), const QString &alias = QString());
+    static Import createLibraryImport(const QString &url, const QString &version = QString(), const QString &alias = QString(), const QStringList &importPaths = QStringList());
+    static Import createFileImport(const QString &file, const QString &version = QString(), const QString &alias = QString(), const QStringList &importPaths = QStringList());
     static Import empty();
 
     bool isEmpty() const { return m_url.isEmpty() && m_file.isEmpty(); }
@@ -53,19 +54,21 @@ public:
     QString file() const { return m_file; }
     QString version() const { return m_version; }
     QString alias() const { return m_alias; }
+    QStringList importPaths() const { return m_importPathList; }
 
     QString toString(bool addSemicolon = false) const;
 
     bool operator==(const Import &other) const;
 
 private:
-    Import(const QString &url, const QString &file, const QString &version, const QString &alias);
+    Import(const QString &url, const QString &file, const QString &version, const QString &alias, const QStringList &importPaths);
 
 private:
     QString m_url;
     QString m_file;
     QString m_version;
     QString m_alias;
+    QStringList m_importPathList;
 };
 
 CORESHARED_EXPORT uint qHash(const Import &import);
diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstanceserverinterface.h b/src/plugins/qmldesigner/designercore/include/nodeinstanceserverinterface.h
index c9d8951999a71f596fefdd45a0232f1225122bc1..dee249415836ac1e1ca82fea4b7f20de5bb77bc1 100644
--- a/src/plugins/qmldesigner/designercore/include/nodeinstanceserverinterface.h
+++ b/src/plugins/qmldesigner/designercore/include/nodeinstanceserverinterface.h
@@ -20,6 +20,7 @@ class ChangeIdsCommand;
 class RemoveInstancesCommand;
 class RemovePropertiesCommand;
 class ChangeStateCommand;
+class AddImportCommand;
 
 class NodeInstanceServerInterface : public QObject
 {
@@ -38,6 +39,7 @@ public:
     virtual void reparentInstances(const ReparentInstancesCommand &command) = 0;
     virtual void changeIds(const ChangeIdsCommand &command) = 0;
     virtual void changeState(const ChangeStateCommand &command) = 0;
+    virtual void addImport(const AddImportCommand &command) = 0;
 
     virtual void setBlockUpdates(bool block) {}
 
diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
index 1c844b381afbdfa026784f7c7cf7212046d30fcc..4c06ecbed57768fcad7a3b29ca414078fcef88cc 100644
--- a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
+++ b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
@@ -62,6 +62,7 @@ class ChangeBindingsCommand;
 class ChangeIdsCommand;
 class RemoveInstancesCommand;
 class RemovePropertiesCommand;
+class AddImportCommand;
 
 class CORESHARED_EXPORT NodeInstanceView : public AbstractView, public NodeInstanceClientInterface
 {
@@ -92,7 +93,7 @@ public:
     void selectedNodesChanged(const QList<ModelNode> &selectedNodeList, const QList<ModelNode> &lastSelectedNodeList);
     void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList);
     void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList);
-
+    void importAdded(const Import &import);
 
     QList<NodeInstance> instances() const;
     NodeInstance instanceForNode(const ModelNode &node) const ;
@@ -149,6 +150,7 @@ private: // functions
     RemoveInstancesCommand createRemoveInstancesCommand(const QList<ModelNode> &nodeList) const;
     RemoveInstancesCommand createRemoveInstancesCommand(const ModelNode &node) const;
     RemovePropertiesCommand createRemovePropertiesCommand(const QList<AbstractProperty> &propertyList) const;
+    AddImportCommand createImportCommand(const Import &import);
 
     qint32 generateInstanceId();
 
diff --git a/src/plugins/qmldesigner/designercore/instances/addimportcommand.cpp b/src/plugins/qmldesigner/designercore/instances/addimportcommand.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..bb132896d05cd92b7dec961eacb2fc353bc05c61
--- /dev/null
+++ b/src/plugins/qmldesigner/designercore/instances/addimportcommand.cpp
@@ -0,0 +1,65 @@
+#include "addimportcommand.h"
+
+namespace QmlDesigner {
+
+AddImportCommand::AddImportCommand()
+{
+}
+
+AddImportCommand::AddImportCommand(const QUrl &url, const QString &fileName, const QString &version, const QString &alias, const QStringList &importPathList)
+    : m_url(url),
+      m_fileName(fileName),
+      m_version(version),
+      m_alias(alias),
+      m_importPathList(importPathList)
+{
+}
+
+QUrl AddImportCommand::url() const
+{
+    return m_url;
+}
+
+QString AddImportCommand::fileName() const
+{
+    return m_fileName;
+}
+
+QString AddImportCommand::version() const
+{
+    return m_version;
+}
+
+QString AddImportCommand::alias() const
+{
+    return m_alias;
+}
+
+QStringList AddImportCommand::importPaths() const
+{
+    return m_importPathList;
+}
+
+QDataStream &operator<<(QDataStream &out, const AddImportCommand &command)
+{
+    out << command.url();
+    out << command.fileName();
+    out << command.version();
+    out << command.alias();
+    out << command.importPaths();
+
+    return out;
+}
+
+QDataStream &operator>>(QDataStream &in, AddImportCommand &command)
+{
+    in >> command.m_url;
+    in >> command.m_fileName;
+    in >> command.m_version;
+    in >> command.m_alias;
+    in >> command.m_importPathList;
+
+    return in;
+}
+
+} // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/designercore/instances/addimportcommand.h b/src/plugins/qmldesigner/designercore/instances/addimportcommand.h
new file mode 100644
index 0000000000000000000000000000000000000000..1576a2259734d65fc0bd9b324d9d108a52ab35b4
--- /dev/null
+++ b/src/plugins/qmldesigner/designercore/instances/addimportcommand.h
@@ -0,0 +1,39 @@
+#ifndef ADDIMPORTCOMMAND_H
+#define ADDIMPORTCOMMAND_H
+
+#include <QMetaType>
+#include <QUrl>
+#include <QString>
+#include <QStringList>
+
+namespace QmlDesigner {
+
+class AddImportCommand
+{
+    friend QDataStream &operator>>(QDataStream &in, AddImportCommand &command);
+public:
+    AddImportCommand();
+    AddImportCommand(const QUrl &url, const QString &fileName, const QString &version, const QString &alias, const QStringList &mportPathList);
+
+    QUrl url() const;
+    QString fileName() const;
+    QString version() const;
+    QString alias() const;
+    QStringList importPaths() const;
+
+private:
+    QUrl m_url;
+    QString m_fileName;
+    QString m_version;
+    QString m_alias;
+    QStringList m_importPathList;
+};
+
+QDataStream &operator<<(QDataStream &out, const AddImportCommand &command);
+QDataStream &operator>>(QDataStream &in, AddImportCommand &command);
+
+} // namespace QmlDesigner
+
+Q_DECLARE_METATYPE(QmlDesigner::AddImportCommand);
+
+#endif // ADDIMPORTCOMMAND_H
diff --git a/src/plugins/qmldesigner/designercore/instances/instances.pri b/src/plugins/qmldesigner/designercore/instances/instances.pri
index 0b51ea01e7fe851aaa2d0852fc381c2d260f5ecc..e1c10d67612f04d8387bd43ce5f906b02b669022 100644
--- a/src/plugins/qmldesigner/designercore/instances/instances.pri
+++ b/src/plugins/qmldesigner/designercore/instances/instances.pri
@@ -3,6 +3,7 @@ INCLUDEPATH += $$PWD/../include
 
 
 HEADERS += $$PWD/behaviornodeinstance.h
+HEADERS += $$PWD/addimportcommand.h
 HEADERS += $$PWD/changebindingscommand.h
 HEADERS += $$PWD/changefileurlcommand.h
 HEADERS += $$PWD/changeidscommand.h
@@ -41,6 +42,7 @@ HEADERS += $$PWD/../include/nodeinstanceserverinterface.h
 
 
 SOURCES +=  $$PWD/behaviornodeinstance.cpp
+SOURCES +=  $$PWD/addimportcommand.cpp
 SOURCES +=  $$PWD/changebindingscommand.cpp
 SOURCES +=  $$PWD/changefileurlcommand.cpp
 SOURCES +=  $$PWD/changeidscommand.cpp
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceclientproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceclientproxy.cpp
index 76717f27b4d681ca7c0df2fe9a55a5dda98f89c2..60aefc5cd6642636ace7187b1c75168e4dddb811 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceclientproxy.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceclientproxy.cpp
@@ -22,6 +22,7 @@
 #include "reparentinstancescommand.h"
 #include "changeidscommand.h"
 #include "changestatecommand.h"
+#include "addimportcommand.h"
 
 #include "informationchangedcommand.h"
 #include "pixmapchangedcommand.h"
@@ -127,6 +128,7 @@ void NodeInstanceClientProxy::dispatchCommand(const QVariant &command)
     static const int reparentInstancesCommandType = QMetaType::type("ReparentInstancesCommand");
     static const int changeIdsCommandType = QMetaType::type("ChangeIdsCommand");
     static const int changeStateCommandType = QMetaType::type("ChangeStateCommand");
+    static const int addImportCommandType = QMetaType::type("AddImportCommand");
 
     if (command.userType() ==  createInstancesCommandType)
         nodeInstanceServer()->createInstances(command.value<CreateInstancesCommand>());
@@ -150,6 +152,8 @@ void NodeInstanceClientProxy::dispatchCommand(const QVariant &command)
         nodeInstanceServer()->changeIds(command.value<ChangeIdsCommand>());
     else if (command.userType() ==  changeStateCommandType)
         nodeInstanceServer()->changeState(command.value<ChangeStateCommand>());
+    else if (command.userType() ==  addImportCommandType)
+        nodeInstanceServer()->addImport(command.value<AddImportCommand>());
     else
         Q_ASSERT(false);
 }
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
index 9fcdc2b565f91a350ebb65bdf89be4b830672dc2..c9347ae08d57b5a365d852ade25cdfa68fbd5b2f 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
@@ -10,6 +10,7 @@
 #include <QSet>
 #include <QVariant>
 #include <QMetaType>
+#include <QDeclarativeComponent>
 
 #include "servernodeinstance.h"
 #include "childrenchangeeventfilter.h"
@@ -33,6 +34,7 @@
 #include "commondefines.h"
 #include "childrenchangeeventfilter.h"
 #include "changestatecommand.h"
+#include "addimportcommand.h"
 
 #include <iostream>
 #include <stdio.h>
@@ -44,7 +46,8 @@ NodeInstanceServer::NodeInstanceServer(NodeInstanceClientInterface *nodeInstance
     NodeInstanceServerInterface(),
     m_childrenChangeEventFilter(new Internal::ChildrenChangeEventFilter(this)),
     m_nodeInstanceClient(nodeInstanceClient),
-    m_timer(0)
+    m_timer(0),
+    m_slowRenderTimer(false)
 {
     connect(m_childrenChangeEventFilter.data(), SIGNAL(childrenChanged(QObject*)), this, SLOT(emitParentChanged(QObject*)));
 }
@@ -117,8 +120,24 @@ bool NodeInstanceServer::hasInstanceForObject(QObject *object) const
 
 void NodeInstanceServer::startRenderTimer()
 {
+    if (m_slowRenderTimer)
+        stopRenderTimer();
+
     if (m_timer == 0)
         m_timer = startTimer(16);
+
+    m_slowRenderTimer = false;
+}
+
+void NodeInstanceServer::slowDownRenderTimer()
+{
+    if (!m_slowRenderTimer)
+        stopRenderTimer();
+
+    if (m_timer == 0)
+        m_timer = startTimer(1000);
+
+    m_slowRenderTimer = true;
 }
 
 void NodeInstanceServer::stopRenderTimer()
@@ -135,7 +154,6 @@ void NodeInstanceServer::createScene(const CreateSceneCommand &/*command*/)
     m_declarativeView = new QDeclarativeView;
     m_declarativeView->setAttribute(Qt::WA_DontShowOnScreen, true);
     m_declarativeView->setViewportUpdateMode(QGraphicsView::NoViewportUpdate);
-    m_declarativeView->viewport()->setUpdatesEnabled(false);
     m_declarativeView->show();
 
     if (!m_fileUrl.isEmpty())
@@ -201,6 +219,35 @@ void NodeInstanceServer::changeState(const ChangeStateCommand &command)
     startRenderTimer();
 }
 
+void NodeInstanceServer::addImport(const AddImportCommand &command)
+{
+    QString importStatement = QString("import ");
+
+    if (!command.fileName().isEmpty())
+        importStatement += '"' + command.fileName() + '"';
+    else if (!command.url().isEmpty())
+        importStatement += command.url().toString();
+
+    if (!command.version().isEmpty())
+        importStatement += " " + command.version();
+
+    if (!command.alias().isEmpty())
+        importStatement += " as " + command.alias();
+
+    QDeclarativeComponent importComponent(engine(), 0);
+    QString componentString = QString("import Qt 4.7\n%1\n Item{}\n").arg(importStatement);
+
+    foreach(const QString &importPath, command.importPaths()) {
+        engine()->addImportPath(importPath);
+        engine()->addPluginPath(importPath);
+    }
+
+    importComponent.setData(componentString.toLatin1(), QUrl());
+
+    if (!importComponent.errorString().isEmpty())
+        qDebug() << "QmlDesigner.NodeInstances: import wrong: " << importComponent.errorString();
+}
+
 void NodeInstanceServer::changeFileUrl(const ChangeFileUrlCommand &command)
 {
     m_fileUrl = command.fileUrl();
@@ -598,6 +645,7 @@ void NodeInstanceServer::removeInstanceRelationsip(qint32 instanceId)
 
 PixmapChangedCommand NodeInstanceServer::createPixmapChangedCommand(const ServerNodeInstance &instance) const
 {
+    qDebug() << __FUNCTION__ << instance.internalObject();
     return PixmapChangedCommand(instance.instanceId(), instance.renderImage());
 }
 
@@ -653,8 +701,6 @@ void NodeInstanceServer::findItemChangesAndSendChangeCommands()
                     if((d->dirty && d->notifyBoundingRectChanged)|| (d->dirty && !d->dirtySceneTransform) || nonInstanceChildIsDirty(graphicsObject))
                         dirtyInstanceSet.insert(instance);
 
-
-
                     if (d->geometryChanged) {
                         if (instance.isRootNodeInstance())
                             m_declarativeView->scene()->setSceneRect(item->boundingRect());
@@ -702,7 +748,7 @@ void NodeInstanceServer::findItemChangesAndSendChangeCommands()
                 }
             }
 
-            stopRenderTimer();
+            slowDownRenderTimer();
             nodeInstanceClient()->flush();
         }
 
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h
index 3b03d8ec7d7a93f27ea71e072b16550a26e00a75..07ab44a2c1615879ffb633ce4b570f19b751f48d 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h
@@ -46,7 +46,7 @@ public:
     void removeProperties(const RemovePropertiesCommand &command);
     void reparentInstances(const ReparentInstancesCommand &command);
     void changeState(const ChangeStateCommand &command);
-
+    void addImport(const AddImportCommand &command);
 
     ServerNodeInstance instanceForId(qint32 id) const;
     bool hasInstanceForId(qint32 id) const;
@@ -103,6 +103,7 @@ protected:
     void addChangedProperty(const InstancePropertyPair &property);
 
     void startRenderTimer();
+    void slowDownRenderTimer();
     void stopRenderTimer();
 
 private:
@@ -117,6 +118,7 @@ private:
     QUrl m_fileUrl;
     NodeInstanceClientInterface *m_nodeInstanceClient;
     int m_timer;
+    bool m_slowRenderTimer;
     QVector<InstancePropertyPair> m_changedPropertyList;
 };
 
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverinterface.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverinterface.cpp
index f3fcee3b6779df7f2c401a38a8cf21b3d821ed16..1e9a3f3d5a5b26ceeebd4f6e022c83519002ef13 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverinterface.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverinterface.cpp
@@ -20,7 +20,7 @@
 #include "informationchangedcommand.h"
 #include "pixmapchangedcommand.h"
 #include "valueschangedcommand.h"
-
+#include "addimportcommand.h"
 
 namespace QmlDesigner {
 
@@ -101,6 +101,9 @@ void NodeInstanceServerInterface::registerCommands()
 
     qRegisterMetaType<IdContainer>("IdContainer");
     qRegisterMetaTypeStreamOperators<IdContainer>("IdContainer");
+
+    qRegisterMetaType<AddImportCommand>("AddImportCommand");
+    qRegisterMetaTypeStreamOperators<AddImportCommand>("AddImportCommand");
 }
 
 }
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
index 7dda600535b6dbb09ded54e8281209ca1f1807b1..2d3ed83e0940d2e6edbafa0c44bda0ba1b13c83f 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
@@ -21,6 +21,7 @@
 #include "reparentinstancescommand.h"
 #include "changeidscommand.h"
 #include "changestatecommand.h"
+#include "addimportcommand.h"
 
 #include "informationchangedcommand.h"
 #include "pixmapchangedcommand.h"
@@ -199,4 +200,8 @@ void NodeInstanceServerProxy::changeState(const ChangeStateCommand &command)
     writeCommand(QVariant::fromValue(command));
 }
 
+void NodeInstanceServerProxy::addImport(const AddImportCommand &command)
+{
+    writeCommand(QVariant::fromValue(command));
+}
 } // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h
index 6e3fc1cc9ddead90032606a33e7c7fe1f7857110..40a6baf68810306d96fcfde6a4369246071e58e2 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h
@@ -36,6 +36,7 @@ public:
     void reparentInstances(const ReparentInstancesCommand &command);
     void changeIds(const ChangeIdsCommand &command);
     void changeState(const ChangeStateCommand &command);
+    void addImport(const AddImportCommand &command);
 
     void setBlockUpdates(bool block);
 
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
index e9e58822d0bde5c0ab7d72d57f8b0f7ad86661ab..26e3eab7dab23bd5d4bc3f797021fc13dd31640e 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
@@ -70,6 +70,7 @@
 #include "pixmapchangedcommand.h"
 #include "informationchangedcommand.h"
 #include "changestatecommand.h"
+#include "addimportcommand.h"
 
 #include "nodeinstanceserverproxy.h"
 
@@ -139,6 +140,8 @@ void NodeInstanceView::modelAttached(Model *model)
     nodeInstanceServer()->createScene(createCreateSceneCommand());
 
     nodeInstanceServer()->changeFileUrl(createChangeFileUrlCommand(model->fileUrl()));
+    foreach(const Import &import, model->imports())
+        nodeInstanceServer()->addImport(createImportCommand(import));
 
     loadNodes(allModelNodes());
     setBlockUpdates(false);
@@ -422,6 +425,10 @@ void NodeInstanceView::instancePropertyChange(const QList<QPair<ModelNode, QStri
 
 }
 
+void NodeInstanceView::importAdded(const Import &import)
+{
+    nodeInstanceServer()->addImport(createImportCommand(import));
+}
 
 //\}
 
@@ -861,6 +868,11 @@ RemovePropertiesCommand NodeInstanceView::createRemovePropertiesCommand(const QL
     return RemovePropertiesCommand(containerList);
 }
 
+AddImportCommand NodeInstanceView::createImportCommand(const Import &import)
+{
+    return AddImportCommand(import.url(), import.file(), import.version(), import.alias(), import.importPaths());
+}
+
 void NodeInstanceView::valuesChanged(const ValuesChangedCommand &command)
 {
     foreach(const PropertyValueContainer &container, command.valueChanges()) {
diff --git a/src/plugins/qmldesigner/designercore/model/import.cpp b/src/plugins/qmldesigner/designercore/model/import.cpp
index 53e20bc496bd446ebaef23e116d131b5cb759227..204ed51678569801e74eb0791827ab42a6b9b7fa 100644
--- a/src/plugins/qmldesigner/designercore/model/import.cpp
+++ b/src/plugins/qmldesigner/designercore/model/import.cpp
@@ -33,26 +33,27 @@
 
 namespace QmlDesigner {
 
-Import Import::createLibraryImport(const QString &url, const QString &version, const QString &alias)
+Import Import::createLibraryImport(const QString &url, const QString &version, const QString &alias, const QStringList &importPaths)
 {
-    return Import(url, QString(), version, alias);
+    return Import(url, QString(), version, alias, importPaths);
 }
 
-Import Import::createFileImport(const QString &file, const QString &version, const QString &alias)
+Import Import::createFileImport(const QString &file, const QString &version, const QString &alias, const QStringList &importPaths)
 {
-    return Import(QString(), file, version, alias);
+    return Import(QString(), file, version, alias, importPaths);
 }
 
 Import Import::empty()
 {
-    return Import(QString(), QString(), QString(), QString());
+    return Import(QString(), QString(), QString(), QString(), QStringList());
 }
 
-Import::Import(const QString &url, const QString &file, const QString &version, const QString &alias):
+Import::Import(const QString &url, const QString &file, const QString &version, const QString &alias, const QStringList &importPaths):
         m_url(url),
         m_file(file),
         m_version(version),
-        m_alias(alias)
+        m_alias(alias),
+        m_importPathList(importPaths)
 {
 }
 
diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp
index e454e97bf5bd0545eda423faa4607ab110037d3a..1850ed7e261af24c48b849d86a49041123fb42a7 100644
--- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp
+++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp
@@ -536,13 +536,13 @@ void TextToModelMerger::setupImports(const Document::Ptr &doc,
         if (import->fileName) {
             const QString strippedFileName = stripQuotes(import->fileName->asString());
             const Import newImport = Import::createFileImport(strippedFileName,
-                                                              version, as);
+                                                              version, as, m_rewriterView->textModifier()->importPaths());
 
             if (!existingImports.removeOne(newImport))
                 differenceHandler.modelMissesImport(newImport);
         } else {
             const Import newImport =
-                    Import::createLibraryImport(flatten(import->importUri), version, as);
+                    Import::createLibraryImport(flatten(import->importUri), version, as, m_rewriterView->textModifier()->importPaths());
 
             if (!existingImports.removeOne(newImport))
                 differenceHandler.modelMissesImport(newImport);