diff --git a/Common/Options.cpp b/Common/Options.cpp
index dc940424653a42e71a2ff6945ae3ff72ccd117a0..9eb6148a1f764df2c0403099e4b1fdca1a640a8b 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -102,8 +102,11 @@ static void Print_StringOptions(int num, int level, int diff, int help,
                 help ? " // " : "", help ? s[i].help : "");
         if(file)
           fprintf(file, "%s\n", tmp);
-        else
+        else{
+          // Warning: must call Msg::Direct(level, ...) here, because
+          // we cannot use tmp as a format string (it can contain %s!)
           Msg::Direct(3, "%s", tmp);
+        }
       }
     }
     i++;
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 22911f743287361e005fca36b033204c2ba86069..0318ce640b3788bacdd34053b06d606a13a9b133 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -4285,7 +4285,10 @@ void GUI::create_message_window(bool redraw_only)
 
 void GUI::add_message(const char *msg)
 {
-  msg_browser->add(msg, 0);
+  std::string str(msg);
+  for(unsigned int i = 0; i < str.size(); i++)
+    if(str[i] == '\n' || str[i] == '\t' || str[i] == '\r') str[i] = ' ';
+  msg_browser->add(str.c_str(), 0);
   if(CTX.msg_auto_scroll)
     msg_browser->bottomline(msg_browser->size());
 }