diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index 08b0af2c536c282be92ec597799adad668d6c3d3..4d4ca2e8f9537239ef32015aa7f02c5402e66ff0 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.414 2006-03-10 02:01:06 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.415 2006-04-15 13:01:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -3216,7 +3216,7 @@ void solver_command_cb(CALLBACK_ARGS)
   int i, usedopts = 0;
 
   if(SINFO[num].popup_messages)
-    WID->create_message_window();
+    WID->create_message_window(true);
 
   if(strlen(WID->solver[num].input[1]->value())) {
     FixWindowsPath((char*)WID->solver[num].input[1]->value(), mesh);
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 09ea88f3c391d352468097e2b6f3c910bdd859ee..84f93632190846132b3179bd2a5ce792cbb77183 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.498 2006-04-01 23:02:20 geuzaine Exp $
+// $Id: GUI.cpp,v 1.499 2006-04-15 13:01:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -3702,11 +3702,11 @@ PluginDialogBox *GUI::create_plugin_window(GMSH_Plugin * p)
 
 // Create the window for the messages
 
-void GUI::create_message_window()
+void GUI::create_message_window(bool redraw_only)
 {
 
   if(msg_window) {
-    if(msg_window->shown())
+    if(msg_window->shown() && redraw_only)
       msg_window->redraw();
     else
       msg_window->show();
diff --git a/Fltk/GUI.h b/Fltk/GUI.h
index 9a353d52a9e484dd0c58858abe5b3e0ab2296206..fc08006270a4ec8a76b3310163b533ee6a63fe57 100644
--- a/Fltk/GUI.h
+++ b/Fltk/GUI.h
@@ -275,7 +275,7 @@ public:
   void create_clip_window();
   void create_manip_window();
   void create_statistics_window();
-  void create_message_window();
+  void create_message_window(bool redraw_only=false);
   void create_about_window();
   void create_geometry_context_window(int num);
   void call_for_solver_plugin (int dim);