diff --git a/src/graph/edge.cc b/src/graph/edge.cc
index 74c80bfa34da928173c52d4c7733fc87beaf6c45..a80a229c1f69b3f89696fdee12f675274aa9b6bf 100644
--- a/src/graph/edge.cc
+++ b/src/graph/edge.cc
@@ -245,9 +245,9 @@ namespace hpp {
           edge->isInNodeFrom (isInNodeFrom ());
         } else {
           WaypointEdgePtr_t we = WaypointEdge::create (graph_, from (), node);
-          edge->isInNodeFrom (isInNodeFrom ());
           we->createWaypoint (d-1, bname);
           edge = we;
+          edge->isInNodeFrom (isInNodeFrom ());
         }
         ss.str (std::string ()); ss.clear ();
         ss << bname << "_e" << d;