diff --git a/src/plugins/coreplugin/modemanager.cpp b/src/plugins/coreplugin/modemanager.cpp
index ba30077cd6b5506b5c8894475ed9898ae653500e..55405e226ede7e47d9c509e2115dfc757e49f7e5 100644
--- a/src/plugins/coreplugin/modemanager.cpp
+++ b/src/plugins/coreplugin/modemanager.cpp
@@ -147,11 +147,16 @@ void ModeManager::objectAdded(QObject *obj)
     m_modeShortcuts.insert(index, cmd);
     connect(cmd, SIGNAL(keySequenceChanged()), this, SLOT(updateModeToolTip()));
     for (int i = 0; i < m_modeShortcuts.size(); ++i) {
+        Command *currentCmd = m_modeShortcuts.at(i);
+        bool currentlyHasDefaultSequence = (currentCmd->keySequence()
+                                            == currentCmd->defaultKeySequence());
 #ifdef Q_WS_MAC
-        m_modeShortcuts.at(i)->setDefaultKeySequence(QKeySequence(QString("Meta+%1").arg(i+1)));
+        currentCmd->setDefaultKeySequence(QKeySequence(QString("Meta+%1").arg(i+1)));
 #else
-        m_modeShortcuts.at(i)->setDefaultKeySequence(QKeySequence(QString("Ctrl+%1").arg(i+1)));
+        currentCmd->setDefaultKeySequence(QKeySequence(QString("Ctrl+%1").arg(i+1)));
 #endif
+        if (currentlyHasDefaultSequence)
+            currentCmd->setKeySequence(currentCmd->defaultKeySequence());
     }
 
     m_signalMapper->setMapping(shortcut, mode->uniqueModeName());