diff --git a/src/plugins/qmldesigner/designercore/exceptions/exception.cpp b/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
index c00b52f024697898dea04f6a78e92f1ed7188302..29d820683d754c2bbf093901b7e7acdddf93851b 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
@@ -39,6 +39,13 @@
 #include <QCoreApplication>
 #include <QMessageBox>
 
+static void showAsyncWarning(const QString &title, const QString &desciption)
+{
+    QMessageBox *messageBox = new QMessageBox(QMessageBox::Warning, title, desciption, QMessageBox::Ok, Core::ICore::dialogParent());
+    messageBox->setAttribute(Qt::WA_DeleteOnClose);
+    messageBox->setModal(true);
+    messageBox->show();
+}
 
 /*!
 \defgroup CoreExceptions
@@ -156,7 +163,7 @@ QString Exception::description() const
 void Exception::showException(const QString &title) const
 {
     QString t = title.isEmpty() ? QCoreApplication::translate("QmlDesigner", "Error") : title;
-    QMessageBox::warning(Core::ICore::dialogParent(), t, description());
+    showAsyncWarning(t, description());
 }
 
 /*!