diff --git a/src/plugins/qt4projectmanager/qtoutputformatter.cpp b/src/plugins/qt4projectmanager/qtoutputformatter.cpp
index 4917a93762819bdf9eb3549d17814e85a50818c7..c993cf2a0deaa175cb4f9d1bd487bcfdf82e10ff 100644
--- a/src/plugins/qt4projectmanager/qtoutputformatter.cpp
+++ b/src/plugins/qt4projectmanager/qtoutputformatter.cpp
@@ -42,7 +42,10 @@ using namespace Qt4ProjectManager;
 
 QtOutputFormatter::QtOutputFormatter(ProjectExplorer::Project *project)
     : OutputFormatter()
-    , m_qmlError(QLatin1String("(file:///.+:\\d+:\\d+):"))
+    , m_qmlError(QLatin1String("^(file:///.+"    // file url
+                               ":\\d+"           // colon, line
+                               "(?::\\d+)?)"     // colon, column (optional)
+                               ":"))             // colon
     , m_qtError(QLatin1String("Object::.*in (.*:\\d+)"))
     , m_qtAssert(QLatin1String("^ASSERT: .* in file (.+, line \\d+)$"))
     , m_qtTestFail(QLatin1String("^   Loc: \\[(.*)\\]$"))
@@ -176,16 +179,28 @@ void QtOutputFormatter::appendLine(QTextCursor &cursor, LinkResult lr, const QSt
 void QtOutputFormatter::handleLink(const QString &href)
 {
     if (!href.isEmpty()) {
-        const QRegExp qmlErrorLink(QLatin1String("^(file:///.+):(\\d+):(\\d+)"));
-
-        if (qmlErrorLink.indexIn(href) != -1) {
-            const QString fileName = QUrl(qmlErrorLink.cap(1)).toLocalFile();
-            const int line = qmlErrorLink.cap(2).toInt();
-            const int column = qmlErrorLink.cap(3).toInt();
+        const QRegExp qmlLineColumnLink(QLatin1String("^(file:///.+)" // file url
+                                                 ":(\\d+)"            // line
+                                                 ":(\\d+)$"));        // column
+
+        if (qmlLineColumnLink.indexIn(href) != -1) {
+            const QString fileName = QUrl(qmlLineColumnLink.cap(1)).toLocalFile();
+            const int line = qmlLineColumnLink.cap(2).toInt();
+            const int column = qmlLineColumnLink.cap(3).toInt();
             TextEditor::BaseTextEditor::openEditorAt(fileName, line, column - 1);
             return;
         }
 
+        const QRegExp qmlLineLink(QLatin1String("^(file:///.+)" // file url
+                                                 ":(\\d+)$"));  // line
+
+        if (qmlLineLink.indexIn(href) != -1) {
+            const QString fileName = QUrl(qmlLineLink.cap(1)).toLocalFile();
+            const int line = qmlLineLink.cap(2).toInt();
+            TextEditor::BaseTextEditor::openEditorAt(fileName, line);
+            return;
+        }
+
         QString fileName;
         int line = -1;