Index: trunk/FACT++/src/MessageDim.cc
===================================================================
--- trunk/FACT++/src/MessageDim.cc	(revision 10917)
+++ trunk/FACT++/src/MessageDim.cc	(revision 10919)
@@ -1,3 +1,5 @@
 #include "MessageDim.h"
+
+#include <mutex>
 
 #include "tools.h"
@@ -66,4 +68,8 @@
 int MessageDimTX::Write(const Time &t, const string &txt, int qos)
 {
+    static mutex mtx;
+
+    mtx.lock();
+
     MessageImp::Write(t, txt, qos);
 
@@ -77,8 +83,8 @@
         Out() << " !! " << t.GetAsStr() << " - Sending failed!" << endl;
 
+    mtx.unlock();
+
     return rc;
 }
-
-
 
 // **************************************************************************
Index: trunk/FACT++/src/MessageImp.cc
===================================================================
--- trunk/FACT++/src/MessageImp.cc	(revision 10917)
+++ trunk/FACT++/src/MessageImp.cc	(revision 10919)
@@ -13,4 +13,6 @@
 
 #include <stdarg.h>
+
+#include <mutex>
 
 #include "tools.h"
@@ -105,4 +107,8 @@
 int MessageImp::Write(const Time &time, const string &txt, int severity)
 {
+    static mutex mtx;
+
+    mtx.lock();
+
     switch (severity)
     {
@@ -116,4 +122,6 @@
     }
     fOut << time.GetAsStr() << " - " << txt << endl;
+
+    mtx.unlock();
 
     return 0;
