diff --git a/exchange-test.c b/exchange-test.c
index 7c70c23ec50e545796cebab308e3b68c75ef9e84..9ddb7391cf6ba8da8a6931be120fa046eac45307 100644
--- a/exchange-test.c
+++ b/exchange-test.c
@@ -30,6 +30,7 @@
     fprintf(stderr, "[%03i] %s:%s():%i: " s "\n", myrank,               \
             __FILE__, __FUNCTION__, __LINE__,                           \
             ##__VA_ARGS__);                                             \
+    fflush(stderr);                                                     \
     MPI_Abort(MPI_COMM_WORLD, -1);                                      \
   })
 
@@ -38,18 +39,20 @@
   ({                                                                    \
     fprintf(stdout, "[%04i] %s: " s "\n", myrank,                       \
             __FUNCTION__, ##__VA_ARGS__);                               \
+    fflush(stdout);                                                     \
   })
 
 /* Print MPI error as a string. */
 #define mpi_error_string(res, s, ...)                                   \
   ({                                                                    \
-    fprintf(stderr, "[%03i] %s:%s():%i: " s "\n", myrank,               \
+    fprintf(stdout, "[%03i] %s:%s():%i: " s "\n", myrank,               \
             __FILE__, __FUNCTION__, __LINE__,                           \
             ##__VA_ARGS__);                                             \
     int len = 1024;                                                     \
     char buf[len];                                                      \
     MPI_Error_string(res, buf, &len);                                   \
     fprintf(stdout, "%s\n\n", buf);                                     \
+    fflush(stdout);                                                     \
   })
 
 
@@ -98,10 +101,7 @@ static int datacheck_test(unsigned char fill, size_t size, void *data) {
   unsigned char *p = (unsigned char *)data;
   for (size_t i = 0; i < size; i++) {
     if (p[i] != fill) {
-      if (verbose) {
-        message("%d != %d", p[i], fill);
-        fflush(stdout);
-      }
+        if (verbose) message("%d != %d", p[i], fill);
       return 0;
     }
   }
@@ -304,11 +304,9 @@ int main(int argc, char *argv[]) {
          * updated. */
         if (datacheck_test(myrank, recv_datasizes[pid], recv_datavalues[pid])) {
           message("Received data buffer has not been modified");
-          fflush(stdout);
           error("Failed");
         } else {
           message("Received data is corrupt");
-          fflush(stdout);
           error("Failed");
         }
       } else {