diff --git a/src/libs/qmljs/qmljsqrcparser.cpp b/src/libs/qmljs/qmljsqrcparser.cpp
index dd9d0892905d7f86736daf75d09892e567305891..d4e0d2c40ff7675c6943a3d3b6d7a2ea53fc44a2 100644
--- a/src/libs/qmljs/qmljsqrcparser.cpp
+++ b/src/libs/qmljs/qmljsqrcparser.cpp
@@ -271,6 +271,7 @@ QrcParserPrivate::QrcParserPrivate(QrcParser *)
 
 bool QrcParserPrivate::parseFile(const QString &path)
 {
+    QDir baseDir(QFileInfo(path).path());
     QFile file(path);
     if (!file.open(QIODevice::ReadOnly)) {
         m_errorMessages.append(file.errorString());
@@ -304,9 +305,8 @@ bool QrcParserPrivate::parseFile(const QString &path)
         QDomElement felt = relt.firstChildElement(QLatin1String("file"));
         for (; !felt.isNull(); felt = felt.nextSiblingElement(QLatin1String("file"))) {
             const QString fileName = felt.text();
-            QTC_CHECK(!QDir::isAbsolutePath(fileName));
             const QString alias = felt.attribute(QLatin1String("alias"));
-            QString filePath = QFileInfo(path).path() + QLatin1Char('/') + fileName;
+            QString filePath = baseDir.absoluteFilePath(fileName);
             QString accessPath;
             if (!alias.isEmpty())
                 accessPath = language + prefix + alias;