Index: trunk/lib/FlairCore/src/FrameworkManager_impl.cpp
===================================================================
--- trunk/lib/FlairCore/src/FrameworkManager_impl.cpp	(revision 122)
+++ trunk/lib/FlairCore/src/FrameworkManager_impl.cpp	(revision 133)
@@ -132,5 +132,6 @@
   int status = rt_task_shadow(NULL, task_name.c_str(), 10, 0);
   if (status != 0) {
-    self->Err("rt_task_shadow error (%s)\n", strerror(-status));
+		char errorMsg[256];
+    self->Err("rt_task_shadow error (%s)\n", strerror_r(-status, errorMsg, sizeof(errorMsg)));
   }
 
@@ -147,5 +148,6 @@
   // Printf("destruction FrameworkManager_impl\n");
   int status;
-
+	char errorMsg[256];
+	
   SafeStop();
   Join();
@@ -160,9 +162,9 @@
     status = DeletePipe(&cmd_pipe);
     if (status != 0) {
-      Err("Error deleting pipe (%s)\n", strerror(-status));
+      Err("Error deleting pipe (%s)\n", strerror_r(-status, errorMsg, sizeof(errorMsg)));
     }
     status = DeletePipe(&data_pipe);
     if (status != 0) {
-      Err("Error deleting pipe (%s)\n", strerror(-status));
+      Err("Error deleting pipe (%s)\n", strerror_r(-status, errorMsg, sizeof(errorMsg)));
     }
 
@@ -170,5 +172,5 @@
     status = rt_heap_delete(&log_heap);
     if (status != 0) {
-      Err("rt_heap_delete error (%s)\n", strerror(-status));
+      Err("rt_heap_delete error (%s)\n", strerror_r(-status, errorMsg, sizeof(errorMsg)));
     }
 #endif
@@ -561,5 +563,7 @@
 
 void FrameworkManager_impl::SetupLogger(string log_path) {
-  if (logger_defined == true) {
+  char errorMsg[256];
+	
+	if (logger_defined == true) {
     Warn("SetupLogger() was already called.\n");
     return;
@@ -570,5 +574,5 @@
   int status = CreatePipe(&cmd_pipe, "log_cmd");
   if (status != 0) {
-    Err("Error creating pipe (%s)\n", strerror(-status));
+    Err("Error creating pipe (%s)\n", strerror_r(-status, errorMsg, sizeof(errorMsg)));
     return;
   }
@@ -576,5 +580,5 @@
   status = CreatePipe(&data_pipe, "log_data");
   if (status != 0) {
-    Err("Error creating pipe (%s)\n", strerror(-status));
+    Err("Error creating pipe (%s)\n", strerror_r(-status, errorMsg, sizeof(errorMsg)));
     return;
   }
@@ -585,5 +589,5 @@
   status = rt_heap_create(&log_heap, tmp_name.c_str(), LOG_HEAP, H_FIFO);
   if (status != 0) {
-    Err("rt_heap_create error (%s)\n", strerror(-status));
+    Err("rt_heap_create error (%s)\n", strerror_r(-status, errorMsg, sizeof(errorMsg)));
     return;
   }
@@ -675,5 +679,6 @@
 
       if (written < 0) {
-        Err("write pipe error (%s)\n", strerror(-written));
+				char errorMsg[256];
+        Err("write pipe error (%s)\n", strerror_r(-written, errorMsg, sizeof(errorMsg)));
         nb_err++;
         logs.at(i).running = false;
@@ -708,5 +713,6 @@
 
     if (written < 0) {
-      Err("write pipe error (%s)\n", strerror(-written));
+			char errorMsg[256];
+      Err("write pipe error (%s)\n", strerror_r(-written, errorMsg, sizeof(errorMsg)));
       return;
     } else if (written != sizeof(log_desc_t)) {
@@ -727,5 +733,6 @@
   int status = rt_heap_alloc(&log_heap, sz, TM_NONBLOCK, &ptr);
   if (status != 0) {
-    Err("rt_heap_alloc error (%s)\n", strerror(-status));
+		char errorMsg[256];
+    Err("rt_heap_alloc error (%s)\n", strerror_r(-status, errorMsg, sizeof(errorMsg)));
     ptr = NULL;
   }
@@ -741,5 +748,6 @@
 
   if (status != 0) {
-    Err("rt_heap_free error (%s)\n", strerror(-status));
+		char errorMsg[256];
+    Err("rt_heap_free error (%s)\n", strerror_r(-status, errorMsg, sizeof(errorMsg)));
   }
 #else
@@ -758,7 +766,8 @@
 
   if (written < 0) {
-    Err("erreur write pipe (%s)\n", strerror(-written));
+		char errorMsg[256];
+    Err("error write pipe (%s)\n", strerror_r(-written, errorMsg, sizeof(errorMsg)));
   } else if (written != (ssize_t)size) {
-    Err("erreur write pipe %ld/%ld\n", written, size);
+    Err("error write pipe %ld/%ld\n", written, size);
   }
 }
@@ -776,9 +785,10 @@
 
 #ifdef __XENO__
+	char errorMsg[256];
   filename = NRT_PIPE_PATH + caller->self->ObjectName() + "-log_cmd";
   while (cmd_pipe < 0) {
     cmd_pipe = open(filename.c_str(), O_RDWR);
     if (cmd_pipe < 0 && errno != ENOENT)
-      caller->self->Err("open rt_pipe error: %s %i\n", filename.c_str(), errno);
+      caller->self->Err("open rt_pipe error: %s %s\n", filename.c_str(), strerror_r(errno, errorMsg, sizeof(errorMsg)));
     usleep(1000);
   }
@@ -787,5 +797,5 @@
     data_pipe = open(filename.c_str(), O_RDWR);
     if (data_pipe < 0 && errno != ENOENT)
-      caller->self->Err("open rt_pipe error: %s %i\n", filename.c_str(), errno);
+      caller->self->Err("open rt_pipe error: %s %s\n", filename.c_str(), strerror_r(errno, errorMsg, sizeof(errorMsg)));
     usleep(1000);
   }
