diff --git a/Mesh/meshGEdge.cpp b/Mesh/meshGEdge.cpp
index 02cbe26290aa559ed3c1a9ec5425c96a9a6796e5..78b5cc06ccc13e4d29faaee6a54498c669c7f54c 100644
--- a/Mesh/meshGEdge.cpp
+++ b/Mesh/meshGEdge.cpp
@@ -104,7 +104,7 @@ static double F_Lc(GEdge *ge, double t)
 
 }
 
-static double F_Transfinite(GEdge *ge, double t)
+static double F_Transfinite(GEdge *ge, double t_)
 {
   double length = ge->length();
   if(length == 0.0){
@@ -112,12 +112,17 @@ static double F_Transfinite(GEdge *ge, double t)
     return 1.;
   }
 
-  SVector3 der = ge->firstDer(t) ;
+  SVector3 der = ge->firstDer(t_) ;
   double d = norm(der);
   double coef = ge->meshAttributes.coeffTransfinite;
   int type = ge->meshAttributes.typeTransfinite;
   int nbpt = ge->meshAttributes.nbPointsTransfinite;
 
+  Range<double> bounds = ge->parBounds(0);
+  double t_begin = bounds.low();
+  double t_end = bounds.high();
+  double t = (t_ - t_begin)/(t_end-t_begin);
+
   double val;
 
   if(coef <= 0.0 || coef == 1.0) {
@@ -281,7 +286,7 @@ void meshGEdge::operator() (GEdge *ge)
     N = 1;
   }
   else if(ge->meshAttributes.Method == MESH_TRANSFINITE){
-    a = Integration(ge, t_begin, t_end, F_Transfinite, Points, 1.e-8);
+    a = Integration(ge, t_begin, t_end, F_Transfinite, Points, CTX::instance()->mesh.lcIntegrationPrecision);
     N = ge->meshAttributes.nbPointsTransfinite;
   }
   else{