diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index f2794d31949bdd5d49c162a5b15b7382a4e8454c..be51bb792d4b7732a32addb1dfe52695ad571939 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -66,6 +66,7 @@ template<class Parent>
                                              IOptionsPage *page = 0)
 {
     QStandardItem *rc = new QStandardItem(text);
+    rc->setFlags(Qt::ItemIsEnabled|Qt::ItemIsSelectable);
     rc->setData(QVariant(int(type)), TypeRole);
     rc->setData(QVariant(index), IndexRole);
     rc->setData(qVariantFromValue(page), PageRole);
@@ -115,8 +116,11 @@ bool PageFilterModel::filterAcceptsRow(int source_row, const QModelIndex &source
     // Regular contents check, then check page-filter.
     if (QSortFilterProxyModel::filterAcceptsRow(source_row, source_parent))
         return true;
-    if (const IOptionsPage *page = pageOfItem(sourceModel(), source_parent.child(source_row, 0)))
-        return page->matches(filterRegExp().pattern());
+    if (const IOptionsPage *page = pageOfItem(sourceModel(), source_parent.child(source_row, 0))) {
+        const QString pattern = filterRegExp().pattern();
+        return page->trCategory().contains(pattern, Qt::CaseInsensitive) ||
+        page->matches(pattern);
+    }
     return false;
 }
 
diff --git a/src/plugins/vcsbase/vcsbasesettingspage.cpp b/src/plugins/vcsbase/vcsbasesettingspage.cpp
index ac5ef4c2372bb9ffbcee3bfbf034e568c2e7bc7a..5d9fcb0a83a7ab72d2708af2a22f1fbc70beebb0 100644
--- a/src/plugins/vcsbase/vcsbasesettingspage.cpp
+++ b/src/plugins/vcsbase/vcsbasesettingspage.cpp
@@ -88,6 +88,7 @@ QString VCSBaseSettingsWidget::searchKeyWordMatchString() const
     rc += m_ui->nickNameMailMapLabel->text();
     rc += blank;
     rc += m_ui->nickNameFieldsFileLabel->text();
+    rc.remove(QLatin1Char('&')); // Strip buddy markers.
     return rc;
 }
 
@@ -130,7 +131,8 @@ QWidget *VCSBaseSettingsPage::createPage(QWidget *parent)
 {
     m_widget = new VCSBaseSettingsWidget(parent);
     m_widget->setSettings(m_settings);
-    m_searchKeyWords = m_widget->searchKeyWordMatchString();
+    if (m_searchKeyWords.isEmpty())
+        m_searchKeyWords = m_widget->searchKeyWordMatchString();
     return m_widget;
 }