diff --git a/Common/Message.h b/Common/Message.h
index 40933e7032d549f6f202dd32f168862d89562e9f..b120fa8bced1cfee10e203eff6c435f8a4190d13 100644
--- a/Common/Message.h
+++ b/Common/Message.h
@@ -58,6 +58,7 @@
 #define DIRECT        30  // Direct message (no special formatting)
 
 #define SOLVER        31  // Solver message
+#define SOLVERR       32  // Solver errors and warnings
 
 #define WHITE_STR          "        : "
 #define FATAL_STR          "Fatal   : "
diff --git a/Fltk/Message.cpp b/Fltk/Message.cpp
index a6f6002bc16102adce05b83cefedec4a4ac16359..6a64cc9853d88818a07b486f77a9b877c80569be 100644
--- a/Fltk/Message.cpp
+++ b/Fltk/Message.cpp
@@ -1,4 +1,4 @@
-// $Id: Message.cpp,v 1.50 2004-05-15 08:24:07 geuzaine Exp $
+// $Id: Message.cpp,v 1.51 2004-05-15 15:32:32 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -82,6 +82,7 @@ void Msg(int level, char *fmt, ...)
   switch(level){
   case DIRECT   : color = 5; verb = 2; break ;
   case SOLVER   : color = 4; verb = 3; break ;
+  case SOLVERR  : color = 1; verb = 3; break ;
 
   case STATUS1N : log = 0; //fallthrough
   case STATUS1  : str = INFO_STR; verb = 1; window = 0; break ;
diff --git a/Fltk/Solvers.cpp b/Fltk/Solvers.cpp
index c2cb439fbfeaee1a4a69672aa3cdf1b185445e84..3c437f83ed45ba26da8b621f528baf82e05de79f 100644
--- a/Fltk/Solvers.cpp
+++ b/Fltk/Solvers.cpp
@@ -1,4 +1,4 @@
-// $Id: Solvers.cpp,v 1.22 2004-05-15 08:07:20 geuzaine Exp $
+// $Id: Solvers.cpp,v 1.23 2004-05-15 15:32:32 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -123,9 +123,11 @@ int Solver(int num, char *args)
       }
       break;
     case GMSH_CLIENT_INFO:
+      Msg(SOLVER, "%-7s : %s", SINFO[num].name, str);
+      break;
     case GMSH_CLIENT_WARNING:
     case GMSH_CLIENT_ERROR:
-      Msg(SOLVER, "%-7s : %s", SINFO[num].name, str);
+      Msg(SOLVERR, "%-7s : %s", SINFO[num].name, str);
       break;
     default:
       Msg(WARNING, "Unknown type of message received from %s",