diff --git a/Appl/CEP/CS1/CS1_BGLProc/src/AH_BGL_Processing.cc b/Appl/CEP/CS1/CS1_BGLProc/src/AH_BGL_Processing.cc
index e7a7f28491549ded1193ea47009f00b454e05c37..52d9cb43e2fffb3f83ef860862f32c72618f5ef9 100644
--- a/Appl/CEP/CS1/CS1_BGLProc/src/AH_BGL_Processing.cc
+++ b/Appl/CEP/CS1/CS1_BGLProc/src/AH_BGL_Processing.cc
@@ -45,6 +45,20 @@
 namespace LOFAR {
 namespace CS1 {
 
+#if defined HAVE_BGL
+
+static class BlueGeneL_Fixup {
+  public:
+    BlueGeneL_Fixup() {
+      // make std::clog line buffered
+      static char buffer[4096];
+      setvbuf(stderr, buffer, _IOLBF, sizeof buffer);
+    }
+} BlueGeneL_Fixup;
+
+#endif
+
+
 AH_BGL_Processing::AH_BGL_Processing() 
   : itsWHs(0),
     itsSubbandStub(0),
diff --git a/Appl/CEP/CS1/CS1_BGLProc/src/WH_BGL_Processing.cc b/Appl/CEP/CS1/CS1_BGLProc/src/WH_BGL_Processing.cc
index 6990c5c999ed865b7d6383d31b84461ddfaef46c..542f129becbb9352aba7ed02858013510c59e0b0 100644
--- a/Appl/CEP/CS1/CS1_BGLProc/src/WH_BGL_Processing.cc
+++ b/Appl/CEP/CS1/CS1_BGLProc/src/WH_BGL_Processing.cc
@@ -1203,7 +1203,7 @@ WH_BGL_Processing* WH_BGL_Processing::make(const string &name)
 void WH_BGL_Processing::preprocess()
 {
 #if defined HAVE_MPI
-  std::cerr << "node " << TH_MPI::getCurrentRank() << " filters subbands " << itsFirstSubband << " to " << itsLastSubband << " starting at " << itsCurrentSubband << " with " << itsSubbandIncrement << " as increment\n";
+  std::clog << "node " << TH_MPI::getCurrentRank() << " filters subbands " << itsFirstSubband << " to " << itsLastSubband << " starting at " << itsCurrentSubband << " with " << itsSubbandIncrement << " as increment\n";
 #endif
 
 #if defined HAVE_BGL && NR_SUBBAND_CHANNELS == 256
@@ -1743,25 +1743,27 @@ void WH_BGL_Processing::doCorrelate()
 void WH_BGL_Processing::process()
 {
 #if defined HAVE_MPI
-  std::cerr.precision(15);
-  std::cerr << "core " << TH_MPI::getCurrentRank() << ": start reading at " << MPI_Wtime() << '\n';
+  std::clog.precision(15);
+  std::clog << "core " << TH_MPI::getCurrentRank() << ": start reading at " << MPI_Wtime() << '\n';
 #endif
 
   static NSTimer readTimer("receive timer", true);
   readTimer.start();
   getDataManager().readyWithInHolder(SUBBAND_CHANNEL);
+#if defined SPARSE_FLAGS
+#if defined HAVE_MPI
+  std::clog << "core " << TH_MPI::getCurrentRank() << ": start getting extra data at " << MPI_Wtime() << '\n';
+#endif
+  get_DH_Subband()->getExtraData();
+#endif
   readTimer.stop();
 
 #if defined HAVE_MPI
-  std::cerr << "core " << TH_MPI::getCurrentRank() << ": start processing at " << MPI_Wtime() << '\n';
+  std::clog << "core " << TH_MPI::getCurrentRank() << ": start processing at " << MPI_Wtime() << '\n';
 #endif
 
   computeTimer.start();
 
-#if defined SPARSE_FLAGS
-  get_DH_Subband()->getExtraData();
-#endif
-
   computeFlags();
 
 #if NR_SUBBAND_CHANNELS > 1
@@ -1778,7 +1780,7 @@ void WH_BGL_Processing::process()
   computeTimer.stop();
 
 #if defined HAVE_MPI
-  std::cerr << "core " << TH_MPI::getCurrentRank() << ": start writing at " << MPI_Wtime() << '\n';
+  std::clog << "core " << TH_MPI::getCurrentRank() << ": start writing at " << MPI_Wtime() << '\n';
 #endif
 
   static NSTimer writeTimer("send timer", true);
@@ -1788,7 +1790,7 @@ void WH_BGL_Processing::process()
   writeTimer.stop();
 
 #if defined HAVE_MPI
-  std::cerr << "core " << TH_MPI::getCurrentRank() << ": start idling at " << MPI_Wtime() << '\n';
+  std::clog << "core " << TH_MPI::getCurrentRank() << ": start idling at " << MPI_Wtime() << '\n';
 #endif
 }
 
diff --git a/Appl/CEP/CS1/CS1_BGLProc/test/tWH_BGL_Processing.cc b/Appl/CEP/CS1/CS1_BGLProc/test/tWH_BGL_Processing.cc
index 1587852fa735527fa8397afba382d7caa4e4db6c..ff82d8fc91c552727919bffe7ac843eefa990a53 100644
--- a/Appl/CEP/CS1/CS1_BGLProc/test/tWH_BGL_Processing.cc
+++ b/Appl/CEP/CS1/CS1_BGLProc/test/tWH_BGL_Processing.cc
@@ -65,7 +65,7 @@ void setSubbandTestPattern(WH_BGL_Processing &wh, double signalFrequency, double
   // distance of .25 labda to introduce a delay.  Also, a few samples can be
   // flagged.
 
-  (std::cerr << "setSubbandTestPattern::setTestPattern() ... ").flush();
+  std::cerr << "setSubbandTestPattern::setTestPattern() ... ";
 
   static NSTimer timer("setTestPattern", true);
   timer.start();
@@ -118,10 +118,10 @@ void setSubbandTestPattern(WH_BGL_Processing &wh, double signalFrequency, double
   dh->fillExtraData();
 #endif
 
-  (std::cerr << "done.\n").flush();
+  std::cerr << "done.\n";
 
 #if defined WORDS_BIGENDIAN
-  (std::cerr << "swapBytes()\n").flush();
+  std::cerr << "swapBytes()\n";
   dh->swapBytes();
 #endif
 
@@ -220,17 +220,17 @@ void doWork()
 
   if ((env = getenv("NRUNS")) != 0) {
     nRuns = atoi(env);
-    std::cout << "setting nRuns to " << env << '\n';
+    std::clog << "setting nRuns to " << env << '\n';
   }
 
   if ((env = getenv("SIGNAL_FREQUENCY")) != 0) {
     signalFrequency = atof(env);
-    std::cout << "setting signal frequency to " << env << '\n';
+    std::clog << "setting signal frequency to " << env << '\n';
   }
 
   if ((env = getenv("BASE_FREQUENCY")) != 0) {
     baseFrequency = atof(env);
-    std::cout << "setting base frequency to " << env << '\n';
+    std::clog << "setting base frequency to " << env << '\n';
   }
 
   std::ostringstream baseFrequencyStr;
@@ -265,6 +265,12 @@ int main (int argc, char **argv)
 {
   int retval = 0;
 
+#if defined HAVE_BGL
+  // make std::clog line buffered
+  static char buffer[4096];
+  setvbuf(stderr, buffer, _IOLBF, sizeof buffer);
+#endif
+
 #if defined HAVE_MPI
   TH_MPI::initMPI(argc, argv);
 #else