diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index c0dd832ae19ae91eda15b785f66915e7365a692e..bbaa0ada946b4de794820f9c0ff5efc546be9518 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -6424,8 +6424,8 @@ yyreduce:
           if(ge){
             ge->meshAttributes.Method = MESH_TRANSFINITE;
             ge->meshAttributes.nbPointsTransfinite = ((yyvsp[(5) - (7)].d) > 2) ? (int)(yyvsp[(5) - (7)].d) : 2;
-            ge->meshAttributes.typeTransfinite = sign(d);
-            ge->meshAttributes.coeffTransfinite = 1.;
+            ge->meshAttributes.typeTransfinite = type * sign(d);
+            ge->meshAttributes.coeffTransfinite = coef;
           }
           else
 	    yymsg(0, "Unknown line %d", j);
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index e53220acf37ca5a6ebc7afb86ed684072c0166d9..aa5df8264b5eebec3fdd580ef4ea3854f5bc7bb9 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -2484,8 +2484,8 @@ Transfinite :
           if(ge){
             ge->meshAttributes.Method = MESH_TRANSFINITE;
             ge->meshAttributes.nbPointsTransfinite = ($5 > 2) ? (int)$5 : 2;
-            ge->meshAttributes.typeTransfinite = sign(d);
-            ge->meshAttributes.coeffTransfinite = 1.;
+            ge->meshAttributes.typeTransfinite = type * sign(d);
+            ge->meshAttributes.coeffTransfinite = coef;
           }
           else
 	    yymsg(0, "Unknown line %d", j);