diff --git a/Box/Main.cpp b/Box/Main.cpp
index 6640123f1ae0e8089c027ede5eb02921e7b06369..bf435b2a055f9ea252ad178bcc29b8d9b252135d 100644
--- a/Box/Main.cpp
+++ b/Box/Main.cpp
@@ -1,4 +1,4 @@
-// $Id: Main.cpp,v 1.37 2004-04-15 02:13:22 geuzaine Exp $
+// $Id: Main.cpp,v 1.38 2004-04-19 07:42:23 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -43,8 +43,8 @@
 #include "CommandLine.h"
 #include "MinMax.h"
 
-char yyname[256];
-int yyerrorstate;
+char yyname[256] = "";
+int yyerrorstate = 0;
 Context_T CTX;
 Mesh M, *THEM = NULL, *LOCAL = NULL;
 
diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp
index a1f3b8392c017e6bac00db5748ebc4a05d02e572..70bd51f3b2094dfb6d3604713e7e9d56eedc8241 100644
--- a/Fltk/Main.cpp
+++ b/Fltk/Main.cpp
@@ -1,4 +1,4 @@
-// $Id: Main.cpp,v 1.60 2004-04-15 02:13:23 geuzaine Exp $
+// $Id: Main.cpp,v 1.61 2004-04-19 07:42:24 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -39,8 +39,8 @@
 #include "CommandLine.h"
 #include "Numeric.h"
 
-char yyname[256]="";
-int yyerrorstate=0;
+char yyname[256] = "";
+int yyerrorstate = 0;
 Context_T CTX;
 Mesh M, *THEM = NULL, *LOCAL = NULL;
 GUI *WID = NULL;
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index d1850ace2da01a8329c08ec4750561fd8d248604..06c10ed8475291c71f04bf125789f50b1c5d63cc 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -191,7 +191,7 @@
 
 #line 1 "Gmsh.y"
 
-// $Id: Gmsh.tab.cpp,v 1.185 2004-04-13 20:56:40 geuzaine Exp $
+// $Id: Gmsh.tab.cpp,v 1.186 2004-04-19 07:42:24 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -8990,7 +8990,7 @@ int PrintListOfDouble(char *format, List_T *list, char *buffer){
 
 void yyerror(char *s){
   Msg(GERROR, "'%s', line %d : %s (%s)", yyname, yylineno-1, s, yytext);
-  yyerrorstate=1;
+  yyerrorstate++;
 }
 
 void yymsg(int type, char *fmt, ...){
@@ -9003,5 +9003,5 @@ void yymsg(int type, char *fmt, ...){
 
   Msg(type, "'%s', line %d : %s", yyname, yylineno-1, tmp);
 
-  if(type == GERROR) yyerrorstate=1;
+  if(type == GERROR) yyerrorstate++;
 }
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 045e31950e08301f2e33c3882308c0d0ed7bfc76..e82a9c80d8991efc9e393df9a625c67f7fa7a497 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,5 +1,5 @@
 %{
-// $Id: Gmsh.y,v 1.162 2004-03-30 18:17:09 geuzaine Exp $
+// $Id: Gmsh.y,v 1.163 2004-04-19 07:42:25 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -3875,7 +3875,7 @@ int PrintListOfDouble(char *format, List_T *list, char *buffer){
 
 void yyerror(char *s){
   Msg(GERROR, "'%s', line %d : %s (%s)", yyname, yylineno-1, s, yytext);
-  yyerrorstate=1;
+  yyerrorstate++;
 }
 
 void yymsg(int type, char *fmt, ...){
@@ -3888,5 +3888,5 @@ void yymsg(int type, char *fmt, ...){
 
   Msg(type, "'%s', line %d : %s", yyname, yylineno-1, tmp);
 
-  if(type == GERROR) yyerrorstate=1;
+  if(type == GERROR) yyerrorstate++;
 }
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index cd8c0e4de68d2a1969f8ae0da9d62a2ebfb1f0d6..b38e70bb6eb6178b2148afab6912e8f936ac422a 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -2,7 +2,7 @@
 /* A lexical scanner generated by flex */
 
 /* Scanner skeleton version:
- * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.184 2004-04-13 20:56:40 geuzaine Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.185 2004-04-19 07:42:26 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
@@ -1014,7 +1014,7 @@ char *yytext;
 #line 1 "Gmsh.l"
 #define INITIAL 0
 #line 2 "Gmsh.l"
-// $Id: Gmsh.yy.cpp,v 1.184 2004-04-13 20:56:40 geuzaine Exp $
+// $Id: Gmsh.yy.cpp,v 1.185 2004-04-19 07:42:26 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
diff --git a/Parser/OpenFile.cpp b/Parser/OpenFile.cpp
index 1e2f568fb1a287d97268ec220eebad397443193b..16e2cb9e9328c6403246c7611766779000d35cfb 100644
--- a/Parser/OpenFile.cpp
+++ b/Parser/OpenFile.cpp
@@ -1,4 +1,4 @@
-// $Id: OpenFile.cpp,v 1.52 2004-04-13 18:49:25 geuzaine Exp $
+// $Id: OpenFile.cpp,v 1.53 2004-04-19 07:42:26 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -110,12 +110,9 @@ int ParseFile(char *f, int silent, int close)
   fgets(tmp, sizeof(tmp), yyin);
   fsetpos(yyin, &position);
 
-  int errorcount = 0;
   while(!feof(yyin)){
     yyparse();
-    if(yyerrorstate)
-      errorcount++;
-    if(errorcount > 20){
+    if(yyerrorstate > 20){
       Msg(GERROR, "Too many errors: aborting...");
       break;
     }