diff --git a/src/libs/utils/wizard.cpp b/src/libs/utils/wizard.cpp
index 9e08879a420aeca45d611bb38ceffe8114100a93..58c21cdcc32e253e5e24bf8f911ae350c660aa43 100644
--- a/src/libs/utils/wizard.cpp
+++ b/src/libs/utils/wizard.cpp
@@ -30,13 +30,14 @@
 #include "wizard.h"
 #include "hostosinfo.h"
 
-#include <QMap>
 #include <QHash>
-#include <QVariant>
-
+#include <QKeyEvent>
 #include <QLabel>
-#include <QVBoxLayout>
+#include <QMap>
 #include <QStyle>
+#include <QVBoxLayout>
+#include <QVariant>
+
 
 /*! \class Utils::Wizard
 
@@ -376,6 +377,18 @@ bool Wizard::validateCurrentPage()
     return QWizard::validateCurrentPage();
 }
 
+bool Wizard::event(QEvent *event)
+{
+    if (event->type() == QEvent::ShortcutOverride) {
+        auto ke = static_cast<QKeyEvent *>(event);
+        if (ke->key() == Qt::Key_Escape && !ke->modifiers()) {
+            ke->accept();
+            return true;
+        }
+    }
+    return QWizard::event(event);
+}
+
 void Wizard::_q_currentPageChanged(int pageId)
 {
     Q_D(Wizard);
diff --git a/src/libs/utils/wizard.h b/src/libs/utils/wizard.h
index 4cfecf2f13f43af84010c19706780a46329d22e3..58df9979ce20ca2e29eaec33f99e7a199cc72a86 100644
--- a/src/libs/utils/wizard.h
+++ b/src/libs/utils/wizard.h
@@ -72,6 +72,9 @@ signals:
     void nextClicked(); /* workaround for QWizard behavior where page->initialize is
                          * called before currentIdChanged */
 
+protected:
+    bool event(QEvent *event);
+
 private slots:
     void _q_currentPageChanged(int pageId);
     void _q_pageAdded(int pageId);