diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 45aef0b5a0dee594eeda2b68fb068d6459c30c3b..46da3405b8c99fc1025b250b9f9ae4f94576d180 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -458,7 +458,7 @@ static QToolButton *toolButton(QAction *action)
 
 static Abi anyAbiOfBinary(const QString &fileName)
 {
-    QList<Abi> abis = Abi::abisOfBinary(fileName);
+    QList<Abi> abis = Abi::abisOfBinary(Utils::FileName::fromString(fileName));
     if (abis.isEmpty())
         return Abi();
     return abis.at(0);
@@ -1726,7 +1726,7 @@ void DebuggerPluginPrivate::gdbServerStarted(const QString &channel,
         return;
     }
 
-    QList<Abi> abis = Abi::abisOfBinary(localExecutable);
+    QList<Abi> abis = Abi::abisOfBinary(Utils::FileName::fromString(localExecutable));
     if (abis.isEmpty()) {
         QMessageBox::warning(mainWindow(), tr("Warning"),
             tr("Cannot find ABI for remote process \"%1\".")
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index 2fee8f9d1745c210c24feb8464e48f925528b31e..d12f0be68317ac3f3c16628666f28c04553bc14a 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -731,7 +731,7 @@ static DebuggerStartParameters localStartParameters(RunConfiguration *runConfigu
     sp.processArgs = rc->commandLineArguments();
     sp.toolChainAbi = rc->abi();
     if (!sp.toolChainAbi.isValid()) {
-        QList<Abi> abis = Abi::abisOfBinary(sp.executable);
+        QList<Abi> abis = Abi::abisOfBinary(Utils::FileName::fromString(sp.executable));
         if (!abis.isEmpty())
             sp.toolChainAbi = abis.at(0);
     }
diff --git a/src/plugins/projectexplorer/abi.cpp b/src/plugins/projectexplorer/abi.cpp
index c61b47977a8b15c33a79a51f93e407ce87e32ba8..1d7a4e623e8f86ccdfe42e4224d025ba5a2c262c 100644
--- a/src/plugins/projectexplorer/abi.cpp
+++ b/src/plugins/projectexplorer/abi.cpp
@@ -669,13 +669,13 @@ Abi Abi::hostAbi()
     return Abi(arch, os, subos, format, QSysInfo::WordSize);
 }
 
-QList<Abi> Abi::abisOfBinary(const QString &path)
+QList<Abi> Abi::abisOfBinary(const Utils::FileName &path)
 {
     QList<Abi> tmp;
     if (path.isEmpty())
         return tmp;
 
-    QFile f(path);
+    QFile f(path.toString());
     if (!f.exists())
         return tmp;
 
@@ -692,7 +692,7 @@ QList<Abi> Abi::abisOfBinary(const QString &path)
 
         while (!data.isEmpty()) {
             if ((getUint8(data, 58) != 0x60 || getUint8(data, 59) != 0x0a)) {
-                qWarning() << path << ": Thought it was an ar-file, but it is not!";
+                qWarning() << path.toString() << ": Thought it was an ar-file, but it is not!";
                 break;
             }
 
@@ -857,7 +857,7 @@ void ProjectExplorer::ProjectExplorerPlugin::testAbiOfBinary()
     QFETCH(QString, file);
     QFETCH(QStringList, abis);
 
-    QList<ProjectExplorer::Abi> result = Abi::abisOfBinary(file);
+    QList<ProjectExplorer::Abi> result = Abi::abisOfBinary(Utils::FileName::fromString(file));
     QCOMPARE(result.count(), abis.count());
     for (int i = 0; i < abis.count(); ++i)
         QCOMPARE(result.at(i).toString(), abis.at(i));
diff --git a/src/plugins/projectexplorer/abi.h b/src/plugins/projectexplorer/abi.h
index e49559b979f1243d0fbebd2a02dcc5c8952ae9a3..9e79461313bc931f5aa32f02fdd3d22b464a8de8 100644
--- a/src/plugins/projectexplorer/abi.h
+++ b/src/plugins/projectexplorer/abi.h
@@ -35,6 +35,8 @@
 
 #include "projectexplorer_export.h"
 
+#include <utils/fileutils.h>
+
 #include <QtCore/QList>
 
 namespace ProjectExplorer {
@@ -140,7 +142,7 @@ public:
     static QList<OSFlavor> flavorsForOs(const OS &o);
 
     static Abi hostAbi();
-    static QList<Abi> abisOfBinary(const QString &path);
+    static QList<Abi> abisOfBinary(const Utils::FileName &path);
 
 private:
     Architecture m_architecture;
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index 7111f540648d1d979c498d82408bf88e320eb03e..e54a093e28a135865f35dead13313c20456a8a64 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -411,7 +411,7 @@ Utils::FileName GccToolChain::mkspec() const
         return Utils::FileName::fromString(QLatin1String("macx-g++"));
     }
 
-    QList<Abi> gccAbiList = Abi::abisOfBinary(m_compilerPath);
+    QList<Abi> gccAbiList = Abi::abisOfBinary(Utils::FileName::fromString(m_compilerPath));
     Abi gccAbi;
     if (!gccAbiList.isEmpty())
         gccAbi  = gccAbiList.first();
diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp
index 033f7bcb8badc7b9d03aaf0e733d0247af2c0c9f..805117b18e702fccf20e177a0da444a6bfd9e029 100644
--- a/src/plugins/projectexplorer/msvctoolchain.cpp
+++ b/src/plugins/projectexplorer/msvctoolchain.cpp
@@ -633,7 +633,7 @@ QPair<QString, QString> MsvcToolChain::autoDetectCdbDebugger()
     }
 
     foreach (const QString &cdb, cdbs) {
-        QList<ProjectExplorer::Abi> abis = ProjectExplorer::Abi::abisOfBinary(cdb);
+        QList<ProjectExplorer::Abi> abis = ProjectExplorer::Abi::abisOfBinary(Utils::FileName::fromString(cdb));
         if (abis.isEmpty())
             continue;
         if (abis.first().wordWidth() == 32)
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index 43c95a15baf3d6c55fc124d1dbefbc8f17f0c6c5..679316be962b21e4923bcf93576e033ae2d02bba 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -1179,7 +1179,7 @@ Utils::FileName BaseQtVersion::mkspecFromVersionInfo(const QHash<QString, QStrin
     return mkspecFullPath;
 }
 
-QString BaseQtVersion::qtCorePath(const QHash<QString,QString> &versionInfo, const QString &versionString)
+Utils::FileName BaseQtVersion::qtCorePath(const QHash<QString,QString> &versionInfo, const QString &versionString)
 {
     QStringList dirs;
     dirs << versionInfo.value(QLatin1String("QT_INSTALL_LIBS"))
@@ -1197,8 +1197,9 @@ QString BaseQtVersion::qtCorePath(const QHash<QString,QString> &versionInfo, con
                     && file.startsWith(QLatin1String("QtCore"))
                     && file.endsWith(QLatin1String(".framework"))) {
                 // handle Framework
-                const QString libName = file.left(file.lastIndexOf(QLatin1Char('.')));
-                return info.absoluteFilePath() + QLatin1Char('/') + libName;
+                Utils::FileName lib(info);
+                lib.appendPath(file.left(file.lastIndexOf(QLatin1Char('.'))));
+                return lib;
             }
             if (info.isReadable()) {
                 if (file.startsWith(QLatin1String("libQtCore"))
@@ -1209,18 +1210,18 @@ QString BaseQtVersion::qtCorePath(const QHash<QString,QString> &versionInfo, con
                     else if (file.endsWith(QLatin1String(".dll"))
                              || file.endsWith(QString::fromLatin1(".so.") + versionString)
                              || file.endsWith(QLatin1Char('.') + versionString + QLatin1String(".dylib")))
-                        return info.absoluteFilePath();
+                        return Utils::FileName(info);
                 }
             }
         }
     }
     // Return path to first static library found:
     if (!staticLibs.isEmpty())
-        return staticLibs.at(0).absoluteFilePath();
-    return QString();
+        return Utils::FileName(staticLibs.at(0));
+    return Utils::FileName();
 }
 
-QList<ProjectExplorer::Abi> BaseQtVersion::qtAbisFromLibrary(const QString &coreLibrary)
+QList<ProjectExplorer::Abi> BaseQtVersion::qtAbisFromLibrary(const Utils::FileName &coreLibrary)
 {
     return ProjectExplorer::Abi::abisOfBinary(coreLibrary);
 }
diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h
index ddad59ec6b7ec4242c8bb070a119bfdec7c62554..91bc7b24a74bed1f29aa8350179d3046fdcbdd37 100644
--- a/src/plugins/qtsupport/baseqtversion.h
+++ b/src/plugins/qtsupport/baseqtversion.h
@@ -221,8 +221,8 @@ protected:
     virtual QList<ProjectExplorer::Task> reportIssuesImpl(const QString &proFile, const QString &buildDir);
 
     // helper function for desktop and simulator to figure out the supported abis based on the libraries
-    static QString qtCorePath(const QHash<QString,QString> &versionInfo, const QString &versionString);
-    static QList<ProjectExplorer::Abi> qtAbisFromLibrary(const QString &coreLibrary);
+    static Utils::FileName qtCorePath(const QHash<QString,QString> &versionInfo, const QString &versionString);
+    static QList<ProjectExplorer::Abi> qtAbisFromLibrary(const Utils::FileName &coreLibrary);
 
     void ensureMkSpecParsed() const;
     virtual void parseMkSpec(ProFileEvaluator *) const;