diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp
index 7829f2f982176eac9efd1442508c8c96dc7a3d6f..c6c9fe2733032e2997e2dbf3bf9777bb9d35b95e 100644
--- a/Common/GmshMessage.cpp
+++ b/Common/GmshMessage.cpp
@@ -256,7 +256,11 @@ void Msg::Direct(const char *fmt, ...)
   va_start(args, fmt);
   vsnprintf(str, sizeof(str), fmt, args);
   va_end(args);
-  Direct(3, str);
+
+  if(strlen(str))
+    Direct(3, str);
+  else
+    Direct(3, " ");
 }
 
 void Msg::Direct(int level, const char *fmt, ...)
diff --git a/Common/Options.cpp b/Common/Options.cpp
index a061866bac361bb286d51fb87d4bb82ce921f347..7d53adcb445242cf7c4eb3d473134d448b97871e 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -103,7 +103,7 @@ static void Print_StringOptions(int num, int level, int diff, int help,
         if(file)
           fprintf(file, "%s\n", tmp);
         else
-          Msg::Direct("%s", tmp);
+          Msg::Direct(tmp);
       }
     }
     i++;