diff --git a/src/manipulation-planner.cc b/src/manipulation-planner.cc
index 796dd4bb760a9f5e330f475778224d2e4e85cb37..cca616541f28b753f6a9705764842be69e1270dc 100644
--- a/src/manipulation-planner.cc
+++ b/src/manipulation-planner.cc
@@ -347,7 +347,7 @@ namespace hpp {
       value_type distance;
       for (core::Nodes_t::const_iterator itn1 = nodes.begin ();
           itn1 != nodes.end (); ++itn1) {
-        ConfigurationPtr_t q1 ((*itn1)->configuration ());
+        const Configuration_t& q1 (*(*itn1)->configuration ());
         connectSucceed = false;
         for (core::ConnectedComponents_t::const_iterator itcc =
             roadmap ()->connectedComponents ().begin ();
@@ -364,9 +364,9 @@ namespace hpp {
               hppDout (info, "the two nodes are already connected");
               continue;
             }
-            ConfigurationPtr_t q2 ((*itn2)->configuration ());
-            assert (*q1 != *q2);
-            path = (*sm) (*q1, *q2);
+            const Configuration_t q2 (*(*itn2)->configuration ());
+            assert (q1 != q2);
+            path = sm->steer (q1, q2);
             if (!path) continue;
             if (pathProjector) {
               if (!pathProjector->apply (path, projPath)) continue;
diff --git a/src/symbolic-planner.cc b/src/symbolic-planner.cc
index de4c278cd0a80d6c0c07ce0403b07e62185a71e8..0d9fd5f40b844f86ce51e52ee0b8960af1300f08 100644
--- a/src/symbolic-planner.cc
+++ b/src/symbolic-planner.cc
@@ -432,7 +432,7 @@ namespace hpp {
       value_type distance;
       for (core::Nodes_t::const_iterator itn1 = nodes.begin ();
           itn1 != nodes.end (); ++itn1) {
-        ConfigurationPtr_t q1 ((*itn1)->configuration ());
+        const Configuration_t& q1 (*(*itn1)->configuration ());
         connectSucceed = false;
         for (core::ConnectedComponents_t::const_iterator itcc =
             roadmap ()->connectedComponents ().begin ();
@@ -449,9 +449,9 @@ namespace hpp {
               hppDout (info, "the two nodes are already connected");
               continue;
             }
-            ConfigurationPtr_t q2 ((*itn2)->configuration ());
-            assert (*q1 != *q2);
-            path = (*sm) (*q1, *q2);
+            const Configuration_t& q2 (*(*itn2)->configuration ());
+            assert (q1 != q2);
+            path = sm->steer (q1, q2);
             if (!path) continue;
             if (pathProjector) {
               if (!pathProjector->apply (path, projPath)) continue;