diff --git a/src/plugins/quickopen/directoryfilter.cpp b/src/plugins/quickopen/directoryfilter.cpp
index afc22af054e31ef7954b55cd30c2d4c32211775d..30f7fc28faef19741f6182db6bee6c3b7c271f19 100644
--- a/src/plugins/quickopen/directoryfilter.cpp
+++ b/src/plugins/quickopen/directoryfilter.cpp
@@ -62,7 +62,7 @@ QByteArray DirectoryFilter::saveState() const
     out << m_directories;
     out << m_filters;
     out << shortcutString();
-    out << defaultActiveState();
+    out << isIncludedByDefault();
     out << m_files;
     return value;
 }
@@ -120,7 +120,7 @@ bool DirectoryFilter::openConfigDialog(QWidget *parent, bool &needsRefresh)
     m_ui.directoryList->addItems(m_directories);
     m_ui.fileTypeEdit->setText(m_filters.join(tr(",")));
     m_ui.shortcutEdit->setText(shortcutString());
-    m_ui.defaultFlag->setChecked(!defaultActiveState());
+    m_ui.defaultFlag->setChecked(!isIncludedByDefault());
     updateOptionButtons();
     if (dialog.exec() == QDialog::Accepted) {
         QMutexLocker locker(&m_lock);
diff --git a/src/plugins/quickopen/filesystemfilter.cpp b/src/plugins/quickopen/filesystemfilter.cpp
index 386523ebc43682ff849bd497590cc231ea82df4b..4631a8d9347ead3dac58b9a735b67cb0306f2f21 100644
--- a/src/plugins/quickopen/filesystemfilter.cpp
+++ b/src/plugins/quickopen/filesystemfilter.cpp
@@ -114,7 +114,7 @@ bool FileSystemFilter::openConfigDialog(QWidget *parent, bool &needsRefresh)
     ui.setupUi(&dialog);
 
     ui.hiddenFilesFlag->setChecked(m_includeHidden);
-    ui.limitCheck->setChecked(!defaultActiveState());
+    ui.limitCheck->setChecked(!isIncludedByDefault());
     ui.shortcutEdit->setText(shortcutString());
 
     if (dialog.exec() == QDialog::Accepted) {
@@ -132,7 +132,7 @@ QByteArray FileSystemFilter::saveState() const
     QDataStream out(&value, QIODevice::WriteOnly);
     out << m_includeHidden;
     out << shortcutString();
-    out << defaultActiveState();
+    out << isIncludedByDefault();
     return value;
 }
 
diff --git a/src/plugins/quickopen/iquickopenfilter.cpp b/src/plugins/quickopen/iquickopenfilter.cpp
index ad6441ca284442c89d16bc7278c7dc37d4e1d4c4..82922e3ba2a8fde6c772a3bc755c5eb03c20d13d 100644
--- a/src/plugins/quickopen/iquickopenfilter.cpp
+++ b/src/plugins/quickopen/iquickopenfilter.cpp
@@ -43,7 +43,9 @@
 using namespace QuickOpen;
 
 IQuickOpenFilter::IQuickOpenFilter(QObject *parent):
-    QObject(parent)
+    QObject(parent),
+    m_includedByDefault(false),
+    m_hidden(false)
 {
 }
 
@@ -62,7 +64,7 @@ QByteArray IQuickOpenFilter::saveState() const
     QByteArray value;
     QDataStream out(&value, QIODevice::WriteOnly);
     out << shortcutString();
-    out << defaultActiveState();
+    out << isIncludedByDefault();
     return value;
 }
 
@@ -91,7 +93,7 @@ bool IQuickOpenFilter::openConfigDialog(QWidget *parent, bool &needsRefresh)
     QHBoxLayout *hlayout = new QHBoxLayout;
     QLineEdit *shortcutEdit = new QLineEdit(shortcutString());
     QCheckBox *limitCheck = new QCheckBox(tr("Limit to prefix"));
-    limitCheck->setChecked(!defaultActiveState());
+    limitCheck->setChecked(!isIncludedByDefault());
 
     hlayout->addWidget(new QLabel(tr("Prefix:")));
     hlayout->addWidget(shortcutEdit);
@@ -120,12 +122,22 @@ bool IQuickOpenFilter::isConfigurable() const
     return true;
 }
 
-bool IQuickOpenFilter::defaultActiveState() const
+bool IQuickOpenFilter::isIncludedByDefault() const
 {
-    return m_default;
+    return m_includedByDefault;
 }
 
 void IQuickOpenFilter::setIncludedByDefault(bool includedByDefault)
 {
-    m_default = includedByDefault;
+    m_includedByDefault = includedByDefault;
+}
+
+bool IQuickOpenFilter::isHidden() const
+{
+    return m_hidden;
+}
+
+void IQuickOpenFilter::setHidden(bool hidden)
+{
+    m_hidden = hidden;
 }
diff --git a/src/plugins/quickopen/iquickopenfilter.h b/src/plugins/quickopen/iquickopenfilter.h
index 376b0d0fe911995854c454080200ff947e9c48b9..d5591ac940f82f272fb4f34e271b66c66d4279b8 100644
--- a/src/plugins/quickopen/iquickopenfilter.h
+++ b/src/plugins/quickopen/iquickopenfilter.h
@@ -87,26 +87,25 @@ public:
     IQuickOpenFilter(QObject *parent = 0);
     virtual ~IQuickOpenFilter() {}
 
-    /* visible name */
+    /* Visible name. */
     virtual QString trName() const = 0;
 
-    /* internal name */
+    /* Internal name. */
     virtual QString name() const = 0;
 
-    /* selection list order in case of multiple active filters (high goes on top) */
+    /* Selection list order in case of multiple active filters (high goes on top). */
     virtual Priority priority() const = 0;
 
-    /* string to type to use this filter exclusively */
-    virtual QString shortcutString() const;
-    void setShortcutString(const QString &shortcut);
+    /* String to type to use this filter exclusively. */
+    QString shortcutString() const;
 
-    /* list of matches for the given user entry */
+    /* List of matches for the given user entry. */
     virtual QList<FilterEntry> matchesFor(const QString &entry) = 0;
 
-    /* user has selected the given entry that belongs to this filter */
+    /* User has selected the given entry that belongs to this filter. */
     virtual void accept(FilterEntry selection) const = 0;
 
-    /* implement to update caches on user request, if that's a long operation */
+    /* Implement to update caches on user request, if that's a long operation. */
     virtual void refresh(QFutureInterface<void> &future) = 0;
 
     /* Saved state is used to restore the filter at start up. */
@@ -126,9 +125,11 @@ public:
      * implementation returns true. */
     virtual bool isConfigurable() const;
 
-    /* is this filter used also when the shortcutString is not used? */
-    virtual bool defaultActiveState() const;
-    void setIncludedByDefault(bool includedByDefault);
+    /* Is this filter used also when the shortcutString is not used? */
+    bool isIncludedByDefault() const;
+
+    /* Returns whether the filter should be hidden from configuration and menus. */
+    bool isHidden() const;
 
     static QString trimWildcards(const QString &str) {
         if (str.isEmpty())
@@ -143,9 +144,15 @@ public:
         return str.mid(first, last-first+1);
     }
 
+protected:
+    void setShortcutString(const QString &shortcut);
+    void setIncludedByDefault(bool includedByDefault);
+    void setHidden(bool hidden);
+
 private:
     QString m_shortcut;
-    bool m_default;
+    bool m_includedByDefault;
+    bool m_hidden;
 };
 
 } // namespace QuickOpen
diff --git a/src/plugins/quickopen/quickopenfiltersfilter.cpp b/src/plugins/quickopen/quickopenfiltersfilter.cpp
index e8a487c7d94b57b110be1a3f12061399b36ddaed..519c56daec7dbd78046ae5cbe7921325aad084dd 100644
--- a/src/plugins/quickopen/quickopenfiltersfilter.cpp
+++ b/src/plugins/quickopen/quickopenfiltersfilter.cpp
@@ -49,7 +49,7 @@ QuickOpenFiltersFilter::QuickOpenFiltersFilter(QuickOpenPlugin *plugin,
     m_icon(QIcon(Core::Constants::ICON_NEXT))
 {
     setIncludedByDefault(true);
-    setShortcutString(QString());
+    setHidden(true);
 }
 
 QString QuickOpenFiltersFilter::trName() const
@@ -71,8 +71,8 @@ QList<FilterEntry> QuickOpenFiltersFilter::matchesFor(const QString &entry)
 {
     QList<FilterEntry> entries;
     if (entry.isEmpty()) {
-        foreach (IQuickOpenFilter* filter, m_plugin->filter()) {
-            if (!filter->shortcutString().isEmpty()) {
+        foreach (IQuickOpenFilter *filter, m_plugin->filter()) {
+            if (!filter->shortcutString().isEmpty() && !filter->isHidden()) {
                 FilterEntry entry(this,
                                   filter->shortcutString(),
                                   QVariant::fromValue(filter),
diff --git a/src/plugins/quickopen/quickopentoolwindow.cpp b/src/plugins/quickopen/quickopentoolwindow.cpp
index 211947be8d056facedf447e9107cb81e02c66928..9701923515acf4db426b2d689bca0e97c846b2a3 100644
--- a/src/plugins/quickopen/quickopentoolwindow.cpp
+++ b/src/plugins/quickopen/quickopentoolwindow.cpp
@@ -314,7 +314,7 @@ void QuickOpenToolWindow::updateFilterList()
 {
     m_filterMenu->clear();
     foreach (IQuickOpenFilter *filter, m_quickOpenPlugin->filter()) {
-        if (!filter->shortcutString().isEmpty()) {
+        if (!filter->shortcutString().isEmpty() && !filter->isHidden()) {
             QAction *action = m_filterMenu->addAction(filter->trName(), this, SLOT(filterSelected()));
             action->setData(qVariantFromValue(filter));
         }
@@ -396,7 +396,7 @@ QList<IQuickOpenFilter*> QuickOpenToolWindow::filtersFor(const QString &text, QS
     searchText = text;
     QList<IQuickOpenFilter*> activeFilters;
     foreach (IQuickOpenFilter *filter, filters)
-        if (filter->defaultActiveState())
+        if (filter->isIncludedByDefault())
             activeFilters << filter;
     return activeFilters;
 }
diff --git a/src/plugins/quickopen/settingspage.cpp b/src/plugins/quickopen/settingspage.cpp
index 76263c731badd7a09f6f6f383ec7f7045f857e43..4b1f81fc86721ad7b640c6946ed864a2edeffee5 100644
--- a/src/plugins/quickopen/settingspage.cpp
+++ b/src/plugins/quickopen/settingspage.cpp
@@ -121,8 +121,11 @@ void SettingsPage::updateFilterList()
 {
     m_ui.filterList->clear();
     foreach (IQuickOpenFilter *filter, m_filters) {
+        if (filter->isHidden())
+            continue;
+
         QString title;
-        if (filter->defaultActiveState())
+        if (filter->isIncludedByDefault())
             title = filter->trName();
         else
             title = tr("%1 (Prefix: %2)").arg(filter->trName()).arg(filter->shortcutString());