diff --git a/src/plugins/projectexplorer/outputwindow.cpp b/src/plugins/projectexplorer/outputwindow.cpp
index 3423d4bae4d751abd405961862adfe276d5f3c71..390986c0671f5abd786e241739ed9100b0c0f9d4 100644
--- a/src/plugins/projectexplorer/outputwindow.cpp
+++ b/src/plugins/projectexplorer/outputwindow.cpp
@@ -487,7 +487,10 @@ void OutputWindow::appendApplicationOutputInline(const QString &out, bool onStdE
 void OutputWindow::appendMessage(const QString &out, bool isError)
 {
     setMaximumBlockCount(MaxBlockCount);
+    const bool atBottom = isScrollbarAtBottom();
     m_formatter->appendMessage(doNewlineEnfocement(out), isError);
+    if (atBottom)
+        scrollToBottom();
     enableUndoRedo();
 }