diff --git a/src/path-planner/in-state-path.cc b/src/path-planner/in-state-path.cc
index 728eca1b1b69f3124caf909524b07a950a109aab..69c065c8e43345e311b2ffd3a50b4e7d5874c6a4 100644
--- a/src/path-planner/in-state-path.cc
+++ b/src/path-planner/in-state-path.cc
@@ -229,4 +229,4 @@ namespace hpp {
       
     } // namespace pathPlanner
   } // namespace manipulation
-} // namespace hpp
\ No newline at end of file
+} // namespace hpp
diff --git a/src/path-planner/states-path-finder.cc b/src/path-planner/states-path-finder.cc
index 9b3b1d610f734a1614c5f9d76cdc3cb008a4770a..92cde65b831d66f5ce9dd621e579c39691c8d4f8 100644
--- a/src/path-planner/states-path-finder.cc
+++ b/src/path-planner/states-path-finder.cc
@@ -36,6 +36,7 @@
 #include <hpp/constraints/explicit.hh>
 
 #include <hpp/core/path-vector.hh>
+#include <hpp/core/path-planning-failed.hh>
 #include <hpp/core/configuration-shooter.hh>
 #include <hpp/core/collision-validation.hh>
 #include <hpp/core/collision-validation-report.hh>
@@ -1083,7 +1084,7 @@ namespace hpp {
           planner->setGoal(q2);
           hppDout(info, "calling InStatePath::computePath for transition " << i);
           return planner->solve();
-        } catch(const std::exception&(e)) {
+        } catch(const core::path_planning_failed&(e)) {
           std::ostringstream oss;
           oss << "Error " << e.what() << "\n";
           oss << "Solution \"latest\":\nFailed to build path at edge " << i << ": ";
@@ -1145,7 +1146,7 @@ namespace hpp {
             hppDout(warning, "Solution " << idxSol_ << ": Success"
                     << "\n-----------------------------------------------");
             return ans;
-          } catch(const std::exception&(e)) {
+          } catch(const core::path_planning_failed&(e)) {
             std::ostringstream oss;
             oss << "Error " << e.what() << "\n";
             oss << "Solution " << idxSol_ << ": Failed to build path at edge " << i << ": ";
@@ -1222,7 +1223,7 @@ namespace hpp {
             solved_ = true;
           }
 
-        } catch(const std::exception&(e)) {
+        } catch(const core::path_planning_failed&(e)) {
           std::ostringstream oss;
           oss << "Error " << e.what() << "\n";
           oss << "Solution " << idxSol_ << ": Failed to build path at edge " << idxConfigList_ << ": ";
@@ -1248,7 +1249,7 @@ namespace hpp {
         solved_ = false;
         unsigned long int nIter (0);
         startSolve ();
-        if (interrupt_) throw std::runtime_error ("Interruption");
+        if (interrupt_) throw core::path_planning_failed("Interruption");
         while (!solved_) {
           // Execute one step
           hppStartBenchmark(ONE_STEP);
@@ -1258,7 +1259,7 @@ namespace hpp {
 
           ++nIter;
           //solved = problem()->target()->reached (roadmap());
-          if (interrupt_) throw std::runtime_error ("Interruption");
+          if (interrupt_) throw core::path_planning_failed("Interruption");
         }
         return solution_;
       }