diff --git a/src/multimedia/playback/playlistfileparser.cpp b/src/multimedia/playback/playlistfileparser.cpp
index c7553e16b80c7943334b14f95a03b16868a8df8d..99ebe6f541a03234214cba41f530a872bfd9f962 100644
--- a/src/multimedia/playback/playlistfileparser.cpp
+++ b/src/multimedia/playback/playlistfileparser.cpp
@@ -67,7 +67,7 @@ protected:
         if (url.scheme().isEmpty()) {
             // Resolve it relative to root
             if (root.isLocalFile())
-                return root.resolved(QUrl::fromLocalFile(line));
+                return QUrl::fromUserInput(line, root.adjusted(QUrl::RemoveFilename).toLocalFile(), QUrl::AssumeLocalFile);
             else
                 return root.resolved(url);
         } else if (url.scheme().length() == 1) {