diff --git a/modules/gui/src/python_shell/output_redirector.cc b/modules/gui/src/python_shell/output_redirector.cc
index fa72516c4b37b3d70608ba558ea6cd0bff892df4..dcbcd49f7259b00aefbb03b67e1a4b310b791cd3 100644
--- a/modules/gui/src/python_shell/output_redirector.cc
+++ b/modules/gui/src/python_shell/output_redirector.cc
@@ -22,6 +22,7 @@
   Author: Andreas Schenk
 */
 
+#include <QTimer>
 #include "output_redirector.hh"
 
 
@@ -49,11 +50,15 @@ void OutputRedirector::Write( String const& str )
   }else{
     buffer_+=QString::fromStdString(str);
     timer_.start();
+    QTimer::singleShot(0, this, SLOT(Flush()));
   }
 }
 
 void OutputRedirector::Flush()
 {
+  if(! timer_.isValid()){
+    return;
+  }
   timer_=QTime();
   QString output = buffer_;
   buffer_="";
diff --git a/modules/gui/src/python_shell/output_redirector.hh b/modules/gui/src/python_shell/output_redirector.hh
index 7a1217297a7ea7113917d3a71d620d723469e77b..aec845cbce0d3a217a9a5d9d0498224f016a8e86 100644
--- a/modules/gui/src/python_shell/output_redirector.hh
+++ b/modules/gui/src/python_shell/output_redirector.hh
@@ -39,6 +39,7 @@ Q_OBJECT
 public:
   OutputRedirector();
   void Write(const String& str);
+public slots:
   void Flush();
 signals:
   void OnOutput(const QString& output);