diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index ff8ac82dcea6f1d1e6485c9c5291fee2fc21aa11..d6baffdfd3056c9eab1fd620c0322fecb7567c31 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -850,24 +850,15 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
     return true;
 }
 
-// Find a factory by file mime type in a sequence of factories
-template <class Factory, class Iterator>
-    Factory *findFactory(const QString &mimeType, Iterator i1, Iterator i2)
-{
-    for ( ; i1 != i2; ++i2) {
-        Factory *f = *i1;
-        if (f->mimeTypes().contains(mimeType))
-            return f;
-    }
-    return 0;
-}
-
-ProjectFileFactory * ProjectExplorerPlugin::findProjectFileFactory(const QString &filename) const
+ProjectFileFactory *ProjectExplorerPlugin::findProjectFileFactory(const QString &filename) const
 {
     // Find factory
-    if (const Core::MimeType mt = Core::ICore::instance()->mimeDatabase()->findByFile(QFileInfo(filename)))
-        if (ProjectFileFactory *pf = findFactory<ProjectFileFactory>(mt.type(), d->m_fileFactories.constBegin(), d->m_fileFactories.constEnd()))
-            return pf;
+    if (const Core::MimeType mt = Core::ICore::instance()->mimeDatabase()->findByFile(QFileInfo(filename))) {
+        const QString mimeType = mt.type();
+        foreach (ProjectFileFactory *f, d->m_fileFactories)
+            if (f->mimeTypes().contains(mimeType))
+                return f;
+    }
     qWarning("Unable to find project file factory for '%s'", filename.toUtf8().constData());
     return 0;
 }