diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
index 39a244126104d8f952fd47d8e5afa342dd5ff28f..7e14ddcfd649acde08626a82c70389090b89c35c 100644
--- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
+++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
@@ -179,6 +179,7 @@ void ShortcutSettings::targetIdentifierChanged()
         else
             setModified(current, false);
         current->setText(2, scitem->m_key);
+        resetCollisionMarker(scitem);
         markPossibleCollisions(scitem);
     }
 }
@@ -216,6 +217,7 @@ void ShortcutSettings::importAction()
         ICore::instance()->resourcePath() + "/schemes/",
         tr("Keyboard Mapping Scheme (*.kms)"));
     if (!fileName.isEmpty()) {
+
         CommandsFile cf(fileName);
         QMap<QString, QKeySequence> mapping = cf.importCommands();
 
@@ -231,10 +233,13 @@ void ShortcutSettings::importAction()
                     setModified(item->m_item, true);
                 else
                     setModified(item->m_item, false);
-
-                markPossibleCollisions(item);
             }
         }
+
+        foreach (ShortcutItem *item, m_scitems) {
+            resetCollisionMarker(item);
+            markPossibleCollisions(item);
+        }
     }
 }
 
@@ -246,7 +251,11 @@ void ShortcutSettings::defaultAction()
         setModified(item->m_item, false);
         if (item->m_item == commandList()->currentItem())
             commandChanged(item->m_item);
-        resetCollisionMarkers();
+    }
+
+    foreach (ShortcutItem *item, m_scitems) {
+        resetCollisionMarker(item);
+        markPossibleCollisions(item);
     }
 }
 
@@ -314,6 +323,8 @@ void ShortcutSettings::initialize()
             setModified(item, true);
 
         item->setData(0, Qt::UserRole, qVariantFromValue(s));
+
+        markPossibleCollisions(s);
     }
 }
 
@@ -370,8 +381,6 @@ int ShortcutSettings::translateModifiers(Qt::KeyboardModifiers state,
     return result;
 }
 
-
-
 void ShortcutSettings::markPossibleCollisions(ShortcutItem *item)
 {
     if (item->m_key.isEmpty())
@@ -395,13 +404,20 @@ void ShortcutSettings::markPossibleCollisions(ShortcutItem *item)
                 !item->m_cmd->context().isEmpty())) {
                 currentItem->m_item->setForeground(2, Qt::red);
                 item->m_item->setForeground(2, Qt::red);
+
             }
         }
     }
 }
 
+void ShortcutSettings::resetCollisionMarker(ShortcutItem *item)
+{
+    item->m_item->setForeground(2, commandList()->palette().foreground());
+}
+
+
 void ShortcutSettings::resetCollisionMarkers()
 {
     foreach (ShortcutItem *item, m_scitems)
-        item->m_item->setForeground(2, commandList()->palette().foreground());
+        resetCollisionMarker(item);
 }
diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.h b/src/plugins/coreplugin/dialogs/shortcutsettings.h
index f4013a187f352a9a4b3ef53aa9d014bd3e7b52bc..161ed2d4a8f379689a7bd7ed9e77e4d9d488ea53 100644
--- a/src/plugins/coreplugin/dialogs/shortcutsettings.h
+++ b/src/plugins/coreplugin/dialogs/shortcutsettings.h
@@ -94,6 +94,7 @@ private:
     void handleKeyEvent(QKeyEvent *e);
     int translateModifiers(Qt::KeyboardModifiers state, const QString &text);
     void markPossibleCollisions(ShortcutItem *);
+    void resetCollisionMarker(ShortcutItem *);
     void resetCollisionMarkers();
 
     QList<ShortcutItem *> m_scitems;