diff --git a/src/manipulation-planner.cc b/src/manipulation-planner.cc
index a110edc4bba132577de881118e8ca9a0ea3ff6bf..e785b02610217bc86833f4198ffc9bc1aacdee8d 100644
--- a/src/manipulation-planner.cc
+++ b/src/manipulation-planner.cc
@@ -220,6 +220,8 @@ namespace hpp {
     {
       graph::GraphPtr_t graph = problem_.constraintGraph ();
       PathProjectorPtr_t pathProjector = problem_.pathProjector ();
+      model::DevicePtr_t robot (problem_.robot ());
+      value_type eps (graph->errorThreshold ());
       // Select next node in the constraint graph.
       const ConfigurationPtr_t q_near = n_near->configuration ();
       HPP_START_TIMECOUNTER (chooseEdge);
@@ -237,7 +239,7 @@ namespace hpp {
         es.addFailure (reasons_[PROJECTION]);
         return false;
       }
-      if (qProj_.isApprox (*q_near)) {
+      if (model::isApprox (robot, qProj_, *q_near, eps)) {
         es.addFailure (reasons_[FAILURE]);
 	es.addFailure (reasons_[PATH_PROJECTION_ZERO]);
 	return false;