diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
index 19837bee51f621441240017508eea2bc410a1cfb..5a20a85c73d9c5c0ab7e0ded0dea395ff07c74fa 100644
--- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
+++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
@@ -277,6 +277,12 @@ void RewriterView::importAdded(const Import &import)
     if (textToModelMerger()->isActive())
         return;
 
+    if (import.url() == "Qt")
+        foreach (const Import &import, model()->imports()) {
+            if (import.url() == "QtQuick")
+                return; //QtQuick magic we do not have to add an import for Qt
+        }
+
     modelToTextMerger()->addImport(import);
 
     if (!isModificationGroupActive())
diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp
index 5b6765228958226f21de3d7ed9202a6d7e0fffcc..a92cf8312f64da7ac5d31d18eb43617d3437a2d0 100644
--- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp
+++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp
@@ -77,7 +77,27 @@ static inline QString deEscape(const QString &value)
 
     return result;
 }
+ 
+static inline int fixUpMajorVersionForQtQuick(const QString &value, int i)
+{
+    if (i = 1 && value == "QtQuick")
+        return 4;
+    else return i;
+}
+
+static inline int fixUpMinorVersionForQtQuick(const QString &value, int i)
+{
+    if (i = 0 && value == "QtQuick")
+        return 7;
+    else return i;
+}
 
+static inline QString fixUpPackeNameForQtQuick(const QString &value)
+{
+    if (value == "QtQuick")
+        return "Qt";
+    return value;
+}
 
 static inline bool isSignalPropertyName(const QString &signalName)
 {
@@ -232,9 +252,11 @@ public:
 
         const Interpreter::QmlObjectValue * qmlValue = dynamic_cast<const Interpreter::QmlObjectValue *>(value);
         if (qmlValue) {
-            typeName = qmlValue->packageName() + QLatin1String("/") + qmlValue->className();
-            majorVersion = qmlValue->version().major();
-            minorVersion = qmlValue->version().minor();
+            typeName = fixUpPackeNameForQtQuick(qmlValue->packageName()) + QLatin1String("/") + qmlValue->className();
+
+            //### todo this is just a hack to support QtQuick 1.0
+            majorVersion = fixUpMajorVersionForQtQuick(qmlValue->packageName(), qmlValue->version().major());
+            minorVersion = fixUpMinorVersionForQtQuick(qmlValue->packageName(), qmlValue->version().minor());
         } else {
             for (UiQualifiedId *iter = astTypeNode; iter; iter = iter->next)
                 if (!iter->next && iter->name)
@@ -590,17 +612,6 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH
 
         setupImports(doc, differenceHandler);
 
-        foreach (const Import &import, m_rewriterView->model()->imports()) {
-            if (import.url() == "QtQuick") {
-                QList<RewriterView::Error> errors;
-                RewriterView::Error error(QCoreApplication::translate("QmlDesigner::TextToModelMerger",
-                    "Unsupported import:\nimport QtQuick 1.0 use import Qt 4.7 instead"));
-                errors.append(error);
-                m_rewriterView->setErrors(errors);
-                return false;
-            }
-        }
-
         UiObjectMember *astRootNode = 0;
         if (UiProgram *program = doc->qmlProgram())
             if (program->members)