diff --git a/src/plugins/projectexplorer/outputwindow.cpp b/src/plugins/projectexplorer/outputwindow.cpp
index 45bdbad7431ddc1542102aedb70f007c03f2c329..7bacf4933651ea295aab281ac51a98fa9746adb5 100644
--- a/src/plugins/projectexplorer/outputwindow.cpp
+++ b/src/plugins/projectexplorer/outputwindow.cpp
@@ -200,7 +200,8 @@ void OutputPane::createNewOutputWindow(RunControl *rc)
             delete old;
             m_outputWindows.remove(old);
             OutputWindow *ow = static_cast<OutputWindow *>(m_tabWidget->widget(i));
-            ow->appendOutput("");//New line
+            ow->grayOutOldContent();
+            ow->verticalScrollBar()->setValue(ow->verticalScrollBar()->maximum());
             m_outputWindows.insert(rc, ow);
             found = true;
             break;
@@ -243,9 +244,14 @@ void OutputPane::insertLine()
 
 void OutputPane::reRunRunControl()
 {
-    RunControl *rc = runControlForTab(m_tabWidget->currentIndex());
-    if (rc->runConfiguration()->project() != 0)
+    int index = m_tabWidget->currentIndex();
+    RunControl *rc = runControlForTab(index);
+    if (rc->runConfiguration() && rc->runConfiguration()->project() != 0) {
+        OutputWindow *ow = static_cast<OutputWindow *>(m_tabWidget->widget(index));
+        ow->grayOutOldContent();
+        ow->verticalScrollBar()->setValue(ow->verticalScrollBar()->maximum());
         rc->start();
+    }
 }
 
 void OutputPane::stopRunControl()
@@ -458,6 +464,22 @@ void OutputWindow::insertLine()
     enableUndoRedo();
 }
 
+void OutputWindow::grayOutOldContent()
+{
+    QTextCursor cursor = textCursor();
+    cursor.select(QTextCursor::Document);
+    QTextBlockFormat tbf;
+    const QColor bkgColor = palette().window().color();
+    const QColor fgdColor = palette().windowText().color();
+    tbf.setBackground(QColor((0.5 * bkgColor.red() + 0.5* fgdColor.red()),\
+                             (0.5 * bkgColor.green() + 0.5* fgdColor.green()),\
+                             (0.5 * bkgColor.blue() + 0.5* fgdColor.blue()) ));
+    cursor.mergeBlockFormat(tbf);
+
+    cursor.movePosition(QTextCursor::End);
+    cursor.insertBlock(QTextBlockFormat());
+}
+
 void OutputWindow::enableUndoRedo()
 {
     setMaximumBlockCount(0);
diff --git a/src/plugins/projectexplorer/outputwindow.h b/src/plugins/projectexplorer/outputwindow.h
index ce81025bdbda87623d56710547b88eb979307213..e2175deaa5fc9b2c1ef21420881ecaf076e5a8f6 100644
--- a/src/plugins/projectexplorer/outputwindow.h
+++ b/src/plugins/projectexplorer/outputwindow.h
@@ -125,6 +125,7 @@ public:
     void appendOutput(const QString &out);
     void appendOutputInline(const QString &out);
     void insertLine();
+    void grayOutOldContent();
 
     void showEvent(QShowEvent *);