diff --git a/src/plugins/projectexplorer/outputformatter.cpp b/src/plugins/projectexplorer/outputformatter.cpp
index 9fa6ab1bb5c460a43ea69d714722bd8ee9afd017..c2f96eda6a3817390d4931c9aade9a8e51c82a95 100644
--- a/src/plugins/projectexplorer/outputformatter.cpp
+++ b/src/plugins/projectexplorer/outputformatter.cpp
@@ -88,7 +88,7 @@ void OutputFormatter::clearLastLine()
     cursor.removeSelectedText();
 }
 
-static QColor mix_colors(QColor a, QColor b)
+QColor OutputFormatter::mixColors(const QColor &a, const QColor &b)
 {
     return QColor((a.red() + 2 * b.red()) / 3, (a.green() + 2 * b.green()) / 3,
                   (a.blue() + 2* b.blue()) / 3, (a.alpha() + 2 * b.alpha()) / 3);
@@ -108,11 +108,11 @@ void OutputFormatter::initFormats()
 
     // NormalMessageFormat
     m_formats[NormalMessageFormat].setFont(boldFont);
-    m_formats[NormalMessageFormat].setForeground(mix_colors(p.color(QPalette::Text), QColor(Qt::blue)));
+    m_formats[NormalMessageFormat].setForeground(mixColors(p.color(QPalette::Text), QColor(Qt::blue)));
 
     // ErrorMessageFormat
     m_formats[ErrorMessageFormat].setFont(boldFont);
-    m_formats[ErrorMessageFormat].setForeground(mix_colors(p.color(QPalette::Text), QColor(Qt::red)));
+    m_formats[ErrorMessageFormat].setForeground(mixColors(p.color(QPalette::Text), QColor(Qt::red)));
 
     // StdOutFormat
     m_formats[StdOutFormat].setFont(font);
@@ -120,7 +120,7 @@ void OutputFormatter::initFormats()
 
     // StdErrFormat
     m_formats[StdErrFormat].setFont(font);
-    m_formats[StdErrFormat].setForeground(mix_colors(p.color(QPalette::Text), QColor(Qt::red)));
+    m_formats[StdErrFormat].setForeground(mixColors(p.color(QPalette::Text), QColor(Qt::red)));
 }
 
 void OutputFormatter::handleLink(const QString &href)
diff --git a/src/plugins/projectexplorer/outputformatter.h b/src/plugins/projectexplorer/outputformatter.h
index 81001e16cf756e154f244a53449eaef623d3235b..283e7a3a76eb1fdba047b90b592f6626725770ef 100644
--- a/src/plugins/projectexplorer/outputformatter.h
+++ b/src/plugins/projectexplorer/outputformatter.h
@@ -34,6 +34,7 @@
 
 #include <QtCore/QObject>
 #include <QtCore/QString>
+#include <QtGui/QColor>
 
 QT_FORWARD_DECLARE_CLASS(QMouseEvent);
 QT_FORWARD_DECLARE_CLASS(QPlainTextEdit);
@@ -71,6 +72,8 @@ protected:
     void clearLastLine();
     QTextCharFormat format(Format format);
 
+    static QColor mixColors(const QColor &a, const QColor &b);
+
 private:
     QPlainTextEdit *m_plainTextEdit;
     QTextCharFormat *m_formats;
diff --git a/src/plugins/qt4projectmanager/qtoutputformatter.cpp b/src/plugins/qt4projectmanager/qtoutputformatter.cpp
index 176c29da7dd1892010e7e8f9396bea793c8a75c2..017adc442e68fc162344964f810762ecc417eb1c 100644
--- a/src/plugins/qt4projectmanager/qtoutputformatter.cpp
+++ b/src/plugins/qt4projectmanager/qtoutputformatter.cpp
@@ -77,14 +77,6 @@ LinkResult QtOutputFormatter::matchLine(const QString &line) const
 
 void QtOutputFormatter::appendApplicationOutput(const QString &txt, bool onStdErr)
 {
-    // Do the initialization lazily, as we don't have a plaintext edit
-    // in the ctor
-    if (!m_linkFormat.isValid()) {
-        m_linkFormat.setForeground(plainTextEdit()->palette().link().color());
-        m_linkFormat.setUnderlineStyle(QTextCharFormat::SingleUnderline);
-        m_linkFormat.setAnchor(true);
-    }
-
     QTextCursor cursor(plainTextEdit()->document());
     cursor.movePosition(QTextCursor::End);
     cursor.beginEditBlock();
@@ -166,10 +158,18 @@ void QtOutputFormatter::appendApplicationOutput(const QString &txt, bool onStdEr
 
 void QtOutputFormatter::appendLine(QTextCursor &cursor, LinkResult lr, const QString &line, bool onStdErr)
 {
-    cursor.insertText(line.left(lr.start), format(onStdErr ? StdErrFormat : StdOutFormat));
-    m_linkFormat.setAnchorHref(lr.href);
-    cursor.insertText(line.mid(lr.start, lr.end - lr.start), m_linkFormat);
-    cursor.insertText(line.mid(lr.end), format(onStdErr ? StdErrFormat : StdOutFormat));
+    const QTextCharFormat normalFormat = format(onStdErr ? StdErrFormat : StdOutFormat);
+    cursor.insertText(line.left(lr.start), normalFormat);
+
+    QTextCharFormat linkFormat = normalFormat;
+    const QColor textColor = plainTextEdit()->palette().color(QPalette::Text);
+    linkFormat.setForeground(mixColors(textColor, QColor(Qt::blue)));
+    linkFormat.setUnderlineStyle(QTextCharFormat::SingleUnderline);
+    linkFormat.setAnchor(true);
+    linkFormat.setAnchorHref(lr.href);
+    cursor.insertText(line.mid(lr.start, lr.end - lr.start), linkFormat);
+
+    cursor.insertText(line.mid(lr.end), normalFormat);
 }
 
 void QtOutputFormatter::handleLink(const QString &href)
diff --git a/src/plugins/qt4projectmanager/qtoutputformatter.h b/src/plugins/qt4projectmanager/qtoutputformatter.h
index ba4709e49d099452d7dd0c3242cad080b022c881..a62b1c1d7a032bbc569eac2313275d407fa8efe3 100644
--- a/src/plugins/qt4projectmanager/qtoutputformatter.h
+++ b/src/plugins/qt4projectmanager/qtoutputformatter.h
@@ -69,7 +69,6 @@ private:
     QRegExp m_qtAssert;
     QRegExp m_qtTestFail;
     QWeakPointer<ProjectExplorer::Project> m_project;
-    QTextCharFormat m_linkFormat;
     QString m_lastLine;
     QString m_deferedText;
 };