diff --git a/src/manipulation-planner.cc b/src/manipulation-planner.cc
index 422ddb7a48818587a02b705b33318cd658351b21..d42f7cd5a36c8b07b82f318462e9ccdb3521b015 100644
--- a/src/manipulation-planner.cc
+++ b/src/manipulation-planner.cc
@@ -71,7 +71,8 @@ namespace hpp {
           const Configuration_t& q1, const Configuration_t& q2,
           const graph::StatePtr_t& s1, const graph::StatePtr_t& s2,
           const graph::GraphPtr_t& graph,
-          const PathProjectorPtr_t& pathProjector)
+          const PathProjectorPtr_t& pathProjector,
+          const PathValidationPtr_t& pathValidation)
       {
         assert (graph && s1 && s2);
         graph::Edges_t possibleEdges = graph->getEdges (s1, s2);
@@ -91,7 +92,7 @@ namespace hpp {
         }
 
         PathValidationReportPtr_t report;
-        if (edge->pathValidation()->validate (path, false, tmpPath, report))
+        if (pathValidation->validate (path, false, tmpPath, report))
           return path;
         return core::PathPtr_t();
       }
@@ -302,7 +303,7 @@ namespace hpp {
         }
         HPP_STOP_TIMECOUNTER (projectPath);
       } else projPath = path;
-      PathValidationPtr_t pathValidation (edge->pathValidation ());
+      PathValidationPtr_t pathValidation (problem_.pathValidation ());
       PathValidationReportPtr_t report;
       core::PathPtr_t fullValidPath;
       HPP_START_TIMECOUNTER (validatePath);
@@ -406,7 +407,7 @@ namespace hpp {
             graph::StatePtr_t s2 = getState (graph, *itn2);
             assert (q1 != q2);
 
-            path = connect (q1, q2, s1, s2, graph, pathProjector);
+            path = connect (q1, q2, s1, s2, graph, pathProjector, problem_.pathValidation());
 
             if (path) {
               nbConnection++;
@@ -452,7 +453,7 @@ namespace hpp {
           graph::StatePtr_t s2 = getState (graph, *itn2);
           assert (q1 != q2);
 
-          path = connect (q1, q2, s1, s2, graph, pathProjector);
+          path = connect (q1, q2, s1, s2, graph, pathProjector, problem_.pathValidation());
           if (path) {
             nbConnection++;
             if (!_1to2) roadmap ()->addEdge (*itn1, *itn2, path);