diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
index 7dc83c6b2d751cb593fd0750c3c106fef0c0d985..2dcacc4b46db52bd36bef36e8676e2a4ed6b0601 100644
--- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
+++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
@@ -116,8 +116,6 @@ void ShortcutSettings::finish()
 
 bool ShortcutSettings::eventFilter(QObject *o, QEvent *e)
 {
-    Q_UNUSED(o)
-
     if ( e->type() == QEvent::KeyPress ) {
         QKeyEvent *k = static_cast<QKeyEvent*>(e);
         handleKeyEvent(k);
@@ -125,9 +123,15 @@ bool ShortcutSettings::eventFilter(QObject *o, QEvent *e)
     }
 
     if ( e->type() == QEvent::Shortcut ||
-         e->type() == QEvent::ShortcutOverride  ||
-         e->type() == QEvent::KeyRelease )
+         e->type() == QEvent::KeyRelease ) {
         return true;
+    }
+
+    if (e->type() == QEvent::ShortcutOverride) {
+        // for shortcut overrides, we need to accept as well
+        e->accept();
+        return true;
+    }
 
     return false;
 }