diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
index d05e16bacd41228c314f406bb463a4e97acb34cd..4eeaac24dc6dd1970befec3c833588ecc523621c 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
@@ -41,6 +41,7 @@
 #include "customdraganddrop.h"
 #include <model.h>
 #include <metainfo.h>
+#include "rewritingexception.h"
 
 #include <QFileInfo>
 #include <QFileIconProvider>
@@ -355,6 +356,33 @@ void ItemLibraryWidget::setModel(Model *model)
     updateModel();
 }
 
+void ItemLibraryWidget::emitImportChecked()
+{
+    if (!m_d->model)
+        return;
+
+    bool qtOnlyImport = false;
+    bool meegoImport = false;
+    bool symbianImport = false;
+
+    foreach (const Import &import, m_d->model->imports()) {
+        if (import.isLibraryImport()) {
+            if (import.url().contains(QString("meego"), Qt::CaseInsensitive))
+                meegoImport = true;
+            if (import.url().contains(QString("Qt"), Qt::CaseInsensitive) || import.url().contains(QString("QtQuick"), Qt::CaseInsensitive))
+                qtOnlyImport = true;
+            if (import.url().contains(QString("symbian"), Qt::CaseInsensitive))
+                symbianImport = true;
+        }
+    }
+
+    if (meegoImport || symbianImport)
+        qtOnlyImport = false;
+
+    emit qtBasicOnlyChecked(qtOnlyImport);
+    emit meegoChecked(meegoImport);
+    emit symbianChecked(symbianImport);
+}
 
 void ItemLibraryWidget::setImportFilter(FilterChangeFlag flag)
 {
@@ -368,31 +396,33 @@ void ItemLibraryWidget::setImportFilter(FilterChangeFlag flag)
     if (block == true)
         return;
 
-    QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
 
-    block = true;
-    if (flag == QtBasic) {
-        removeImport(QLatin1String("com.meego"));
-        removeImport(QLatin1String("com.nokia.symbian"));
-        emit qtBasicOnlyChecked(true);
-        emit meegoChecked(false);
-        emit symbianChecked(false);
-    } else  if (flag == Symbian) {
-        removeImport(QLatin1String("com.meego"));
-        addImport(QLatin1String("com.nokia.symbian"), QLatin1String("1.0"));
-        emit qtBasicOnlyChecked(false);
-        emit meegoChecked(false);
-        emit symbianChecked(true);
-    }  else  if (flag == Meego) {
-        removeImport(QLatin1String("com.nokia.symbian"));
-        addImport(QLatin1String("com.meego"), QLatin1String("1.0"));
-        emit qtBasicOnlyChecked(false);
-        emit meegoChecked(true);
-        emit symbianChecked(false);
+    FilterChangeFlag oldfilterFlag = m_filterFlag;
+
+    QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
+    try {
+        block = true;
+        if (flag == QtBasic) {
+            removeImport(QLatin1String("com.meego"));
+            removeImport(QLatin1String("com.nokia.symbian"));
+        } else  if (flag == Symbian) {
+            removeImport(QLatin1String("com.meego"));
+            addImport(QLatin1String("com.nokia.symbian"), QLatin1String("1.0"));
+        }  else  if (flag == Meego) {
+            removeImport(QLatin1String("com.nokia.symbian"));
+            addImport(QLatin1String("com.meego"), QLatin1String("1.0"));
+        }
+        QApplication::restoreOverrideCursor();
+        block = false;
+        m_filterFlag = flag;
+    } catch (RewritingException &xcetion) {
+        QApplication::restoreOverrideCursor();
+        m_filterFlag = oldfilterFlag;
+        block = false;
+        // do something about it
     }
-    QApplication::restoreOverrideCursor();
-    block = false;
-    m_filterFlag = flag;
+
+    emitImportChecked();
 }
 
 void ItemLibraryWidget::onQtBasicOnlyChecked(bool b)
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h
index c82fad9800be3230875ffb3a38f8c4b83a05983e..d84d04f67369911d5e3be7da26426285793f3fd1 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h
@@ -87,6 +87,7 @@ protected:
     void wheelEvent(QWheelEvent *event);
     void removeImport(const QString &name);
     void addImport(const QString &name, const QString &version);
+    void emitImportChecked();
 
 signals:
     void itemActivated(const QString& itemName);