diff --git a/src/libs/utils/stringutils.cpp b/src/libs/utils/stringutils.cpp
index e809cb478653b223fb2c43377da4337bdcf30a62..79bca90709c8bd73cdfbc41e69484264fd580ce7 100644
--- a/src/libs/utils/stringutils.cpp
+++ b/src/libs/utils/stringutils.cpp
@@ -40,6 +40,10 @@ QTCREATOR_UTILS_EXPORT QString settingsKey(const QString &category)
 {
     QString rc(category);
     const QChar underscore = QLatin1Char('_');
+    // Remove the sort category "X.Category" -> "Category"
+    if (rc.size() > 2 && rc.at(0).isLetter() && rc.at(1) == QLatin1Char('.'))
+        rc.remove(0, 2);
+    // Replace special characters
     const int size = rc.size();
     for (int i = 0; i < size; i++) {
         const QChar c = rc.at(i);