diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp
index e69a7371878a47fe82d968e96cce0706e43d6325..e72f63a5b5c0b4f2f1937751820d3a5cfb9f5c62 100644
--- a/Geo/Geo.cpp
+++ b/Geo/Geo.cpp
@@ -1,4 +1,4 @@
-// $Id: Geo.cpp,v 1.65 2006-11-27 22:22:13 geuzaine Exp $
+// $Id: Geo.cpp,v 1.66 2006-12-02 22:05:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -636,7 +636,7 @@ Surface *Create_Surface(int Num, int Typ)
   for(int i = 0; i < 5; i++)
     pS->ipar[i] = 0;
   pS->Recombine = 0;
-  pS->Recombine_Dir = 1;
+  pS->Recombine_Dir = -1;
   pS->RecombineAngle = 75;
   pS->TrsfPoints = List_Create(4, 4, sizeof(Vertex *));
   pS->Contours = List_Create(1, 1, sizeof(List_T *));
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 2cc979292379357a26837dd6364c664c628d5e30..e2608762612053a7f2d7731758161769d404ebaf 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -126,7 +126,7 @@
 
 #line 1 "Gmsh.y"
 
-// $Id: Gmsh.tab.cpp,v 1.290 2006-12-01 13:50:12 geuzaine Exp $
+// $Id: Gmsh.tab.cpp,v 1.291 2006-12-02 22:05:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -5320,7 +5320,7 @@ case 199:
 	yymsg(WARNING, "Unknown surface %d", (int)yyvsp[-4].d);
       else{
 	s->Method = TRANSFINI;
-	s->Recombine_Dir = 1;
+	s->Recombine_Dir = -1;
 	int k = List_Nbr(yyvsp[-1].l);
 	if(k != 3 && k != 4){
 	  yymsg(GERROR, "Wrong definition of Transfinite Surface %d: "
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 60a87ce5aef37c8abe0ea2131609b1131dfd79c1..3d457354946f69270dc2e12b9883848a23606509 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,5 +1,5 @@
 %{
-// $Id: Gmsh.y,v 1.248 2006-12-01 13:50:13 geuzaine Exp $
+// $Id: Gmsh.y,v 1.249 2006-12-02 22:05:16 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -2463,7 +2463,7 @@ Transfinite :
 	yymsg(WARNING, "Unknown surface %d", (int)$4);
       else{
 	s->Method = TRANSFINI;
-	s->Recombine_Dir = 1;
+	s->Recombine_Dir = -1;
 	int k = List_Nbr($7);
 	if(k != 3 && k != 4){
 	  yymsg(GERROR, "Wrong definition of Transfinite Surface %d: "
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 7cb173a0d20d0d9c1c8bd25642913bf27abf3020..92fff6ae426cefc91919791990b4c96f12006d73 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.289 2006-12-01 13:50:13 geuzaine Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.290 2006-12-02 22:05:16 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
@@ -727,7 +727,7 @@ char *yytext;
 #line 1 "Gmsh.l"
 #define INITIAL 0
 #line 2 "Gmsh.l"
-// $Id: Gmsh.yy.cpp,v 1.289 2006-12-01 13:50:13 geuzaine Exp $
+// $Id: Gmsh.yy.cpp,v 1.290 2006-12-02 22:05:16 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
diff --git a/benchmarks/3d/sph.geo b/benchmarks/3d/sph.geo
index 9ffbf40ff941afc5808379e05d97f469242e2468..0f4a835045cc612d756b27aeeb19196074eb500f 100644
--- a/benchmarks/3d/sph.geo
+++ b/benchmarks/3d/sph.geo
@@ -45,8 +45,8 @@ Transfinite Surface {22} = {4,7,6,3};
 Transfinite Surface {20} = {3,2,5,6};
 Transfinite Surface {18} = {4,2,5,7};
 
-Transfinite Surface {24} = {3,4,2} Left;
-Transfinite Surface {26} = {6,7,5} Left;
+Transfinite Surface {24} = {3,4,2};
+Transfinite Surface {26} = {6,7,5};
 
 Recombine Surface {18,20,22};
 /*
diff --git a/benchmarks/3d/sph2.geo b/benchmarks/3d/sph2.geo
index ab73fc505fa930f995241473c8b977b97d0fdbd4..dec30487df72c1696f04631e67af811618a7ed36 100644
--- a/benchmarks/3d/sph2.geo
+++ b/benchmarks/3d/sph2.geo
@@ -3,7 +3,7 @@ dext = 1;
 dint = 0.2;
 angle = Pi/4;
 nbdiv = 2;
-Mesh.ElementOrder = 2;
+//Mesh.ElementOrder = 2;
 
 Point(1) = {0,0,0,lc};  
 Point(2) = {dint,0,0,lc};