diff --git a/script/scenarios/demos/plane_hrp2_interp.py b/script/scenarios/demos/plane_hrp2_interp.py
index 2a1c6eb7c6b242ea1a2f8d43a73ab65d1ea8f1f5..f574738b512495fdbd830191df0ba0fb54b5ec9f 100644
--- a/script/scenarios/demos/plane_hrp2_interp.py
+++ b/script/scenarios/demos/plane_hrp2_interp.py
@@ -253,14 +253,19 @@ from numpy import matrix, asarray
 from numpy.linalg import norm
 from spline import bezier
 
-def __Bezier(wps):
-    matrix_bezier = matrix(wps).transpose()
-    return bezier(matrix_bezier)
 
 def __curveToWps(curve):
     return asarray(curve.waypoints().transpose()).tolist()
 
 
+def __Bezier(wps, init_acc = [0.,0.,0.], end_acc = [0.,0.,0.]):
+    c = curve_constraints();
+    c.init_vel = matrix([0.,0.,0.]);
+    c.end_vel  = matrix([0.,0.,0.]);
+    c.init_acc = matrix(init_acc);
+    c.end_acc  = matrix(end_acc);
+    matrix_bezier = matrix(wps).transpose()
+    return __curveToWps(bezier(matrix_bezier, c))
 
 def test(stateid = 1, path = False) :
     com_1 = __get_com(fullBody, configs[stateid])
@@ -268,18 +273,26 @@ def test(stateid = 1, path = False) :
     data = gen_sequence_data_from_state(fullBody,stateid,configs)
     c_bounds_1 = get_com_constraint(fullBody, stateid, configs[stateid], limbsCOMConstraints, interm = False)
     c_bounds_2 = get_com_constraint(fullBody, stateid, configs[stateid+1], limbsCOMConstraints, interm = False)
-    success, c_mid_1, c_mid_2 = solve_quasi_static(data, c_bounds = [c_bounds_1, c_bounds_2])
+    #~ success, c_mid_1, c_mid_2 = solve_quasi_static(data, c_bounds = [c_bounds_1, c_bounds_2])
+    success, c_mid_1, c_mid_2 = solve_dyn(data, c_bounds = [c_bounds_1, c_bounds_2])
     
-    if path:
+    if path and success:
         #~ fullBody.straightPath([c_mid_1[0].tolist(),c_mid_2[0].tolist()])
         #~ fullBody.straightPath([c_mid_2[0].tolist(),com_2])
-        p0 = fullBody.generateCurveTraj([com_1,c_mid_1[0].tolist()])
-        fullBody.generateCurveTraj([com_1, c_mid_1[0].tolist(),c_mid_2[0].tolist(), com_2])
-        fullBody.generateCurveTraj([c_mid_2[0].tolist(),com_2])
-        #~ pp.displayPath(p0)
+        
+        bezier_0 = __Bezier([com_1,c_mid_1[0].tolist()]              , end_acc = c_mid_1[1].tolist())
+        bezier_1 = __Bezier([c_mid_1[0].tolist(),c_mid_2[0].tolist()], end_acc = c_mid_2[1].tolist(), init_acc = c_mid_1[1].tolist())
+        bezier_2 = __Bezier([c_mid_2[0].tolist(),com_2]              , init_acc = c_mid_2[1].tolist())
+        
+        p0 = fullBody.generateCurveTraj(bezier_0)
+        fullBody.generateCurveTraj(bezier_1)
+        fullBody.generateCurveTraj(bezier_2)
+        pp.displayPath(p0)
         pp.displayPath(p0+1)
-        #~ pp.displayPath(p0+2)
-        paths_ids = [int(el) for el in fullBody.comRRTFromPos(stateid,p0,p0+1,p0+2)]
-        pp(paths_ids[-1])
+        pp.displayPath(p0+2)
+        #~ paths_ids = [int(el) for el in fullBody.comRRTFromPos(stateid,p0,p0+1,p0+2)]
+        paths_ids = []
+        #~ pp(paths_ids[-1])
     
-        return paths_ids
+        return sucess, paths_ids
+    return success