diff --git a/src/graph/edge.cc b/src/graph/edge.cc
index df04b97cb1b85872552c5794f3f4e16f994bbe94..5b5575354bfedb73fb5592967cb5098d8b61d112 100644
--- a/src/graph/edge.cc
+++ b/src/graph/edge.cc
@@ -430,8 +430,11 @@ namespace hpp {
             lastSucceeded_ = false;
             return false;
           }
-          if (configs_.col(i) != configs_.col (i+1)) {
-            assert ((configs_.col(i) - configs_.col (i+1)).norm () > 1e-8);
+          assert (configConstraint ());
+          assert (configConstraint ()->configProjector ());
+          value_type eps
+            (configConstraint ()->configProjector ()->errorThreshold ());
+          if ((configs_.col(i) - configs_.col (i+1)).squaredNorm () > eps*eps) {
             if (!edges_[i]->build (p, configs_.col(i), configs_.col (i+1))) {
               hppDout (info, "Waypoint edge " << name()
                        << ": build failed at waypoint " << i << "."