diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 19aa52746ed946f350af0849451dde15bef1d797..eda9b9abd62eeaf9e68dff30a62d11c4cef967ef 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -563,15 +563,17 @@ IEditor *EditorManagerPrivate::openEditor(EditorView *view, const QString &fileN
     int columnNumber = -1;
     if ((flags & EditorManager::CanContainLineAndColumnNumber) && !fi.exists()) {
         const EditorManager::FilePathInfo fp = EditorManager::splitLineAndColumnNumber(fn);
-        fn = fp.filePath;
+        fn = Utils::FileUtils::normalizePathName(fp.filePath);
         lineNumber = fp.lineNumber;
         columnNumber = fp.columnNumber;
-        if (lineNumber != -1)
-            fi.setFile(fn);
+    } else {
+        fn = Utils::FileUtils::normalizePathName(fn);
     }
 
     if (fn.isEmpty())
         return 0;
+    if (fn != fileName)
+        fi.setFile(fn);
 
     if (newEditor)
         *newEditor = false;