diff --git a/lib/c/labcomm.c b/lib/c/labcomm.c
index cb48e47df9c4798768bdb0b8a42e40067ad0aa2c..ed4e61779d2d21eb2025fd7f16ca6430e26ec0de 100644
--- a/lib/c/labcomm.c
+++ b/lib/c/labcomm.c
@@ -246,7 +246,7 @@ void labcomm_set_local_index(struct labcomm_signature *signature)
 {
   if (signature->index != 0) {
     labcomm_error_fatal_global(LABCOMM_ERROR_SIGNATURE_ALREADY_SET,
-			       "%s", signature->name);
+			       "Signature already set: %s\n", signature->name);
   }
   signature->index = local_index;
   local_index++;
@@ -256,7 +256,7 @@ int labcomm_get_local_index(struct labcomm_signature *signature)
 {
   if (signature->index == 0) {
     labcomm_error_fatal_global(LABCOMM_ERROR_SIGNATURE_NOT_SET,
-			       "%s", signature->name);
+			       "Signature not set: %s\n", signature->name);
   }
   return signature->index;
 }
diff --git a/lib/c/labcomm_error.c b/lib/c/labcomm_error.c
index 278c5f3549f4df229bba97cde7fa08bd89e12ea3..5bfea6ed319e2a8457fcbd57cb6e747e0e5af7e8 100644
--- a/lib/c/labcomm_error.c
+++ b/lib/c/labcomm_error.c
@@ -21,12 +21,19 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <stdarg.h>
 #include "labcomm_error.h"
- 
+
 void labcomm_error_fatal_global(enum labcomm_error error,
 				char *format,
 				...)
 {
+  va_list args;
+
   fprintf(stderr, "Fatal error %d\n", error);
+  va_start(args, format);
+  vprintf(format, args);
+  va_end(args);
+
   exit(1);
 }