diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 3c45706897923cc890cdac751cee3aaf2231f9d0..6fb2a58d639395e118ed953a9d69e7fdff20b614 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -177,7 +177,7 @@
 #line 1 "Gmsh.y"
  
 
-// $Id: Gmsh.tab.cpp,v 1.129 2001-11-13 08:41:03 geuzaine Exp $
+// $Id: Gmsh.tab.cpp,v 1.130 2001-11-14 15:31:00 geuzaine Exp $
 
 #include <stdarg.h>
 #ifndef _NOPLUGIN
@@ -5212,7 +5212,7 @@ case 250:
 	  Msg(WARNING, "Unkown Curve %d", j);
 	else{
 	  c->Method = TRANSFINI;
-	  c->ipar[0] = (int)yyvsp[-1].d;
+	  c->ipar[0] = (yyvsp[-1].d>2)?(int)yyvsp[-1].d:2;
 	  c->ipar[1] = sign(d);
 	  c->dpar[0] = 1.0;
 	}
@@ -5232,7 +5232,7 @@ case 251:
 	  Msg(WARNING, "Unkown Curve %d", j);
 	else{
 	  c->Method = TRANSFINI;
-	  c->ipar[0] = (int)yyvsp[-4].d;
+	  c->ipar[0] = (yyvsp[-4].d>2)?(int)yyvsp[-4].d:2;
 	  c->ipar[1] = sign(d); /* Progresion : code 1 ou -1 */
 	  c->dpar[0] = fabs(yyvsp[-1].d);
 	}
@@ -5252,7 +5252,7 @@ case 252:
 	  Msg(WARNING, "Unkown Curve %d", j);
 	else{
 	  c->Method = TRANSFINI;
-	  c->ipar[0] = (int)yyvsp[-4].d;
+	  c->ipar[0] = (yyvsp[-4].d>2)?(int)yyvsp[-4].d:2;
 	  c->ipar[1] = 2*sign(d); /* Bump : code 2 ou -2 */
 	  c->dpar[0] = fabs(yyvsp[-1].d);
 	}
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 42f6e0c4da9b020ea8c823241beb5ce21bd71565..43608392cadf335d63d522af47cdb2b31d4ad35b 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,6 +1,6 @@
 %{ 
 
-// $Id: Gmsh.y,v 1.113 2001-11-13 08:41:03 geuzaine Exp $
+// $Id: Gmsh.y,v 1.114 2001-11-14 15:31:00 geuzaine Exp $
 
 #include <stdarg.h>
 #ifndef _NOPLUGIN
@@ -1989,7 +1989,7 @@ Transfini :
 	  Msg(WARNING, "Unkown Curve %d", j);
 	else{
 	  c->Method = TRANSFINI;
-	  c->ipar[0] = (int)$5;
+	  c->ipar[0] = ($5>2)?(int)$5:2;
 	  c->ipar[1] = sign(d);
 	  c->dpar[0] = 1.0;
 	}
@@ -2007,7 +2007,7 @@ Transfini :
 	  Msg(WARNING, "Unkown Curve %d", j);
 	else{
 	  c->Method = TRANSFINI;
-	  c->ipar[0] = (int)$5;
+	  c->ipar[0] = ($5>2)?(int)$5:2;
 	  c->ipar[1] = sign(d); /* Progresion : code 1 ou -1 */
 	  c->dpar[0] = fabs($8);
 	}
@@ -2025,7 +2025,7 @@ Transfini :
 	  Msg(WARNING, "Unkown Curve %d", j);
 	else{
 	  c->Method = TRANSFINI;
-	  c->ipar[0] = (int)$5;
+	  c->ipar[0] = ($5>2)?(int)$5:2;
 	  c->ipar[1] = 2*sign(d); /* Bump : code 2 ou -2 */
 	  c->dpar[0] = fabs($8);
 	}
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 677287aefff7091634f06c796b6f99273180d568..5af36e7c608b6e3d68e09ef4089561da09173e5b 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.129 2001-11-13 08:41:04 geuzaine Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.130 2001-11-14 15:31:00 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
@@ -1000,7 +1000,7 @@ char *yytext;
 #define INITIAL 0
 #line 2 "Gmsh.l"
 
-// $Id: Gmsh.yy.cpp,v 1.129 2001-11-13 08:41:04 geuzaine Exp $
+// $Id: Gmsh.yy.cpp,v 1.130 2001-11-14 15:31:00 geuzaine Exp $
 
 #include <stdio.h>
 #include <stdlib.h>