diff --git a/include/hpp/bezier-com-traj/utils.hh b/include/hpp/bezier-com-traj/utils.hh
index 9c20d04791d208407baf141cfb64713748627b7d..94ec4230597eb7c6e398f42b55222926b76cb04f 100644
--- a/include/hpp/bezier-com-traj/utils.hh
+++ b/include/hpp/bezier-com-traj/utils.hh
@@ -141,7 +141,7 @@ Bezier bezier_com_traj::computeBezierCurve(const ConstraintFlag& flag, const dou
       i++;
     }
   }
-  return Bezier(wps.begin(), wps.end(), T);
+  return Bezier(wps.begin(), wps.end(), 0.,T);
 }
 
 #endif
diff --git a/src/computeCOMTraj.cpp b/src/computeCOMTraj.cpp
index da5036f3ec785b8ba4017ba6d1b0036166e90b0e..08fed94e0d8e65021b9f778e56049df574d4d5af 100644
--- a/src/computeCOMTraj.cpp
+++ b/src/computeCOMTraj.cpp
@@ -354,9 +354,9 @@ std::pair<MatrixXX, VectorX> computeConstraintsContinuous(const ProblemData& pDa
   // create the curves for c and w with symbolic waypoints (ie. depend on y)
   bezier_wp_t::t_point_t wps_c = computeConstantWaypointsSymbolic(pData, T);
   bezier_wp_t::t_point_t wps_w = computeWwaypoints(pData, T);
-  bezier_wp_t c(wps_c.begin(), wps_c.end(), T);
+  bezier_wp_t c(wps_c.begin(), wps_c.end(),0., T);
   bezier_wp_t ddc = c.compute_derivate(2);
-  bezier_wp_t w(wps_w.begin(), wps_w.end(), T);
+  bezier_wp_t w(wps_w.begin(), wps_w.end(),0., T);
 
   // for each splitted curves : add the constraints for each waypoints
   const long int num_ineq = computeNumIneqContinuous(pData, Ts, (int)c.degree_, (int)w.degree_, useDD);
diff --git a/src/solve_0_step.cpp b/src/solve_0_step.cpp
index 423667eec6e520fd3bb482084aebf254ea0b62a2..77a43227c2efde068f7c7cc54ca692ff40020c49 100644
--- a/src/solve_0_step.cpp
+++ b/src/solve_0_step.cpp
@@ -196,7 +196,7 @@ void computeC_of_T(const ProblemData& pData, const std::vector<double>& Ts, Resu
   wps.push_back(pData.dc0_ * Ts[0] / 3 + pData.c0_);
   wps.push_back(res.x.head(3));
   wps.push_back(res.x.head(3));
-  res.c_of_t_ = bezier_t(wps.begin(), wps.end(), Ts[0]);
+  res.c_of_t_ = bezier_t(wps.begin(), wps.end(),0., Ts[0]);
 }
 
 void computedL_of_T(const ProblemData& pData, const std::vector<double>& Ts, ResultDataCOMTraj& res) {
@@ -205,7 +205,7 @@ void computedL_of_T(const ProblemData& pData, const std::vector<double>& Ts, Res
     wps.push_back(3 * (res.x.tail(3) - pData.l0_));
     wps.push_back(3 * (-res.x.tail(3)));
     wps.push_back(Vector3::Zero());
-    res.dL_of_t_ = bezier_t(wps.begin(), wps.end(), Ts[0], 1. / Ts[0]);
+    res.dL_of_t_ = bezier_t(wps.begin(), wps.end(),0.,Ts[0], 1. / Ts[0]);
   } else
     res.dL_of_t_ = bezier_t::zero(3,Ts[0]);
 }
diff --git a/tests/test-bezier-symbolic.cpp b/tests/test-bezier-symbolic.cpp
index 88beaa9948c935283f0022fce3b32612294b46f5..94c3d875d5652e9265a24586bbb4afc03d309181 100644
--- a/tests/test-bezier-symbolic.cpp
+++ b/tests/test-bezier-symbolic.cpp
@@ -70,8 +70,8 @@ BOOST_AUTO_TEST_CASE(symbolic_eval_c) {
   point_t y(1, 0.2, 4.5);
   pts[2] = y;
 
-  bezier_t c(pts.begin(), pts.end(), T);
-  bezier_wp_t c_sym(wps.begin(), wps.end(), T);
+  bezier_t c(pts.begin(), pts.end(),0., T);
+  bezier_wp_t c_sym(wps.begin(), wps.end(),0., T);
 
   double t = 0.;
   while (t < T) {
@@ -86,9 +86,9 @@ BOOST_AUTO_TEST_CASE(symbolic_eval_dc) {
   point_t y(1, 0.2, 4.5);
   pts[2] = y;
 
-  bezier_t c(pts.begin(), pts.end(), T);
+  bezier_t c(pts.begin(), pts.end(),0., T);
   bezier_t dc = c.compute_derivate(1);
-  bezier_wp_t c_sym(wps.begin(), wps.end(), T);
+  bezier_wp_t c_sym(wps.begin(), wps.end(),0., T);
   bezier_wp_t dc_sym = c_sym.compute_derivate(1);
 
   double t = 0.;
@@ -104,9 +104,9 @@ BOOST_AUTO_TEST_CASE(symbolic_eval_ddc) {
   point_t y(1, 0.2, 4.5);
   pts[2] = y;
 
-  bezier_t c(pts.begin(), pts.end(), T);
+  bezier_t c(pts.begin(), pts.end(),0., T);
   bezier_t ddc = c.compute_derivate(2);
-  bezier_wp_t c_sym(wps.begin(), wps.end(), T);
+  bezier_wp_t c_sym(wps.begin(), wps.end(),0., T);
   bezier_wp_t ddc_sym = c_sym.compute_derivate(2);
 
   double t = 0.;
@@ -122,9 +122,9 @@ BOOST_AUTO_TEST_CASE(symbolic_eval_jc) {
   point_t y(1, 0.2, 4.5);
   pts[2] = y;
 
-  bezier_t c(pts.begin(), pts.end(), T);
+  bezier_t c(pts.begin(), pts.end(),0., T);
   bezier_t jc = c.compute_derivate(3);
-  bezier_wp_t c_sym(wps.begin(), wps.end(), T);
+  bezier_wp_t c_sym(wps.begin(), wps.end(),0., T);
   bezier_wp_t jc_sym = c_sym.compute_derivate(3);
 
   double t = 0.;
@@ -140,8 +140,8 @@ BOOST_AUTO_TEST_CASE(symbolic_split_c) {
   point_t y(1, 0.2, 4.5);
   pts[2] = y;
 
-  bezier_t c(pts.begin(), pts.end(), T);
-  bezier_wp_t c_sym(wps.begin(), wps.end(), T);
+  bezier_t c(pts.begin(), pts.end(),0., T);
+  bezier_wp_t c_sym(wps.begin(), wps.end(),0., T);
 
   double a, b, t, t1, t2;
   for (size_t i = 0; i < 100; ++i) {
@@ -169,7 +169,7 @@ BOOST_AUTO_TEST_CASE(symbolic_split_c_bench) {
   point_t y(1, 0.2, 4.5);
   pts[2] = y;
 
-  bezier_wp_t c_sym(wps.begin(), wps.end(), T);
+  bezier_wp_t c_sym(wps.begin(), wps.end(),0., T);
 
   std::vector<double> values;
   for (int i = 0; i < 100000; ++i) values.push_back((double)rand() / RAND_MAX);
@@ -190,7 +190,7 @@ BOOST_AUTO_TEST_CASE(symbolic_split_w) {
   bezier_wp_t::t_point_t wps = computeWwaypoints(buildPData(), T);
   point_t y(1, 0.2, 4.5);
 
-  bezier_wp_t w(wps.begin(), wps.end(), T);
+  bezier_wp_t w(wps.begin(), wps.end(),0., T);
 
   double a, b, t, t1, t2;
   for (size_t i = 0; i < 100; ++i) {
@@ -212,7 +212,7 @@ BOOST_AUTO_TEST_CASE(symbolic_split_w_bench) {
   bezier_wp_t::t_point_t wps = computeWwaypoints(buildPData(), T);
   point_t y(1, 0.2, 4.5);
 
-  bezier_wp_t w(wps.begin(), wps.end(), T);
+  bezier_wp_t w(wps.begin(), wps.end(),0., T);
 
   std::vector<double> values;
   for (int i = 0; i < 100000; ++i) values.push_back((double)rand() / RAND_MAX);