diff --git a/include/hpp/manipulation/graph-path-validation.hh b/include/hpp/manipulation/graph-path-validation.hh
index 6c3dfc9da18294dbbb15eba1573103a90fb7c58a..92642de15f2670a7c3799592a1c25a2091735cad 100644
--- a/include/hpp/manipulation/graph-path-validation.hh
+++ b/include/hpp/manipulation/graph-path-validation.hh
@@ -142,9 +142,11 @@ namespace hpp {
 
       private:
         /// Do validation regarding the constraint graph for PathVector
-        bool impl_validate (const PathVectorPtr_t& path, bool reverse, PathPtr_t& validPart);
+        bool impl_validate (const PathVectorPtr_t& path, bool reverse,
+            PathPtr_t& validPart, PathValidationReportPtr_t& report);
         /// Do validation regarding the constraint graph for Path 
-        bool impl_validate (const PathPtr_t& path, bool reverse, PathPtr_t& validPart);
+        bool impl_validate (const PathPtr_t& path, bool reverse,
+            PathPtr_t& validPart, PathValidationReportPtr_t& report);
         /// The encapsulated PathValidation.
         PathValidationPtr_t pathValidation_;
         /// Pointer to the constraint graph.
diff --git a/src/graph-path-validation.cc b/src/graph-path-validation.cc
index 292dff7d9804f4aef07c1cb0a39423ba9fe1c487..46f24dc023f32a3096fc605aefacb34587ffa6a6 100644
--- a/src/graph-path-validation.cc
+++ b/src/graph-path-validation.cc
@@ -32,7 +32,8 @@ namespace hpp {
           const PathPtr_t& path, bool reverse, PathPtr_t& validPart)
     {
       assert (path);
-      bool success = impl_validate (path, reverse, validPart);
+      PathValidationReportPtr_t report;
+      bool success = impl_validate (path, reverse, validPart, report);
       assert (constraintGraph_);
       assert (constraintGraph_->getNode (validPart->initial ()));
       assert (constraintGraph_->getNode (validPart->end     ()));
@@ -44,19 +45,20 @@ namespace hpp {
      ValidationReport&)
     {
       assert (path);
-      return impl_validate (path, reverse, validPart);
+      PathValidationReportPtr_t report;
+      return impl_validate (path, reverse, validPart, report);
     }
 
     bool GraphPathValidation::validate (const PathPtr_t& path, bool reverse,
 					PathPtr_t& validPart,
-					PathValidationReportPtr_t&)
+					PathValidationReportPtr_t& report)
     {
       assert (path);
-      return impl_validate (path, reverse, validPart);
+      return impl_validate (path, reverse, validPart, report);
     }
 
-    bool GraphPathValidation::impl_validate (
-        const PathVectorPtr_t& path, bool reverse, PathPtr_t& validPart)
+    bool GraphPathValidation::impl_validate (const PathVectorPtr_t& path,
+        bool reverse, PathPtr_t& validPart, PathValidationReportPtr_t& report)
     {
       PathPtr_t validSubPart;
       if (reverse) {
@@ -64,7 +66,7 @@ namespace hpp {
         assert (!reverse && "This has never been tested with reverse path");
         for (long int i = path->numberPaths () - 1; i >= 0; i--) {
           // We should stop at the first non valid subpath.
-          if (!impl_validate (path->pathAtRank (i), true, validSubPart)) {
+          if (!impl_validate (path->pathAtRank (i), true, validSubPart, report)) {
             PathVectorPtr_t p = PathVector::create
 	      (path->outputSize(), path->outputDerivativeSize());
             for (long int v = path->numberPaths () - 1; v > i; v--)
@@ -78,7 +80,7 @@ namespace hpp {
       } else {
         for (size_t i = 0; i != path->numberPaths (); i++) {
           // We should stop at the first non valid subpath.
-          if (!impl_validate (path->pathAtRank (i), false, validSubPart)) {
+          if (!impl_validate (path->pathAtRank (i), false, validSubPart, report)) {
             PathVectorPtr_t p = PathVector::create
 	      (path->outputSize(), path->outputDerivativeSize());
             for (size_t v = 0; v < i; v++)
@@ -95,15 +97,14 @@ namespace hpp {
       return true;
     }
 
-    bool GraphPathValidation::impl_validate (
-        const PathPtr_t& path, bool reverse, PathPtr_t& validPart)
+    bool GraphPathValidation::impl_validate (const PathPtr_t& path,
+        bool reverse, PathPtr_t& validPart, PathValidationReportPtr_t& report)
     {
       PathVectorPtr_t pathVector = HPP_DYNAMIC_PTR_CAST(PathVector, path);
       if (pathVector)
-        return impl_validate (pathVector, reverse, validPart);
+        return impl_validate (pathVector, reverse, validPart, report);
 
       PathPtr_t pathNoCollision;
-      PathValidationReportPtr_t report;
       if (pathValidation_->validate (path, reverse, pathNoCollision, report)) {
         validPart = path;
         return true;