diff --git a/src/plugins/coreplugin/mimedatabase.cpp b/src/plugins/coreplugin/mimedatabase.cpp
index ea92354a357c23e18995316a1f16997cb8e0e412..b98f010d39fe2d22e97a43976c607e9d0edfafd5 100644
--- a/src/plugins/coreplugin/mimedatabase.cpp
+++ b/src/plugins/coreplugin/mimedatabase.cpp
@@ -455,7 +455,7 @@ bool MimeType::setPreferredSuffix(const QString &s)
     return true;
 }
 
-static QString formatFilterString(const QString &description, const QList<QRegExp> &globs)
+QString MimeType::formatFilterString(const QString &description, const QList<QRegExp> &globs)
 {
     QString rc;
     if (globs.empty())  // Binary files
diff --git a/src/plugins/coreplugin/mimedatabase.h b/src/plugins/coreplugin/mimedatabase.h
index 13a9d3a370f6090893a4d09ff2f25388794fb69d..751447f6d89ebf57cabf7d01e55a38a311ecae81 100644
--- a/src/plugins/coreplugin/mimedatabase.h
+++ b/src/plugins/coreplugin/mimedatabase.h
@@ -176,6 +176,8 @@ public:
 
     friend QDebug operator<<(QDebug d, const MimeType &mt);
 
+    static QString formatFilterString(const QString &description, const QList<QRegExp> &globs);
+
 private:
     explicit MimeType(const MimeTypeData &d);
     unsigned matchesFileBySuffix(Internal::FileMatchContext &c) const;
diff --git a/src/plugins/projectexplorer/pluginfilefactory.cpp b/src/plugins/projectexplorer/pluginfilefactory.cpp
index a6c5961e819165548069c66225bbe91136e0eac5..c8bfe397ca64e07dc1cb2e59fb8211c35de863b2 100644
--- a/src/plugins/projectexplorer/pluginfilefactory.cpp
+++ b/src/plugins/projectexplorer/pluginfilefactory.cpp
@@ -87,6 +87,8 @@ QList<ProjectFileFactory *> ProjectFileFactory::createFactories(QString *filterS
     QList<IProjectManager*> projectManagers =
         ExtensionSystem::PluginManager::instance()->getObjects<IProjectManager>();
 
+    QList<QRegExp> allGlobPatterns;
+
     const QString filterSeparator = QLatin1String(";;");
     filterString->clear();
     foreach (IProjectManager *manager, projectManagers) {
@@ -94,8 +96,13 @@ QList<ProjectFileFactory *> ProjectFileFactory::createFactories(QString *filterS
         if (!filterString->isEmpty())
             *filterString += filterSeparator;
         const QString mimeType = manager->mimeType();
-        const QString pFilterString = Core::ICore::instance()->mimeDatabase()->findByType(mimeType).filterString();
+        Core::MimeType mime = Core::ICore::instance()->mimeDatabase()->findByType(mimeType);
+        const QString pFilterString = mime.filterString();
+        allGlobPatterns.append(mime.globPatterns());
         *filterString += pFilterString;
     }
+    QString allProjectFilter = Core::MimeType::formatFilterString(tr("All Projects"), allGlobPatterns);
+    allProjectFilter.append(filterSeparator);
+    filterString->prepend(allProjectFilter);
     return rc;
 }