diff --git a/include/hpp/manipulation/connected-component.hh b/include/hpp/manipulation/connected-component.hh
index 4577c70beb487cffec9509e2c9e7e4acafe61978..21251ab1046d5dd967df99b2d8cff51bf61845b2 100644
--- a/include/hpp/manipulation/connected-component.hh
+++ b/include/hpp/manipulation/connected-component.hh
@@ -49,12 +49,13 @@ class HPP_MANIPULATION_DLLAPI ConnectedComponent : public core::ConnectedCompone
       /// \param roadmap node to be added
       void addNode (const core::NodePtr_t& node);
 
-      RoadmapNodes_t getRoadmapNodes (const graph::NodePtr_t graphNode);
+      const RoadmapNodes_t& getRoadmapNodes (const graph::NodePtr_t graphNode) const;
      
   protected:
   private:
 	GraphNodes_t graphNodeMap_;
 	RoadmapPtr_t roadmap_;
+        static RoadmapNodes_t empty_;
     }; // class ConnectedComponent
   } //   namespace manipulation
 } // namespace hpp
diff --git a/src/connected-component.cc b/src/connected-component.cc
index 101f2c3459b9d47be7329ac7030708011989d779..e47917ca974af9e73762fe14f7095bb6426d3f9e 100644
--- a/src/connected-component.cc
+++ b/src/connected-component.cc
@@ -23,6 +23,7 @@
 
 namespace hpp {
   namespace manipulation {
+    RoadmapNodes_t ConnectedComponent::empty_ = RoadmapNodes_t();
 
     ConnectedComponentPtr_t ConnectedComponent::create(const RoadmapWkPtr_t& roadmap)
     {
@@ -74,17 +75,15 @@ namespace hpp {
 
     }
 
-    RoadmapNodes_t ConnectedComponent::getRoadmapNodes (const graph::NodePtr_t graphNode)
+    const RoadmapNodes_t& ConnectedComponent::getRoadmapNodes (
+        const graph::NodePtr_t graphNode) const
     {
-      RoadmapNodes_t res;
-      GraphNodes_t::iterator mapIt = graphNodeMap_.find(graphNode);
-      if (mapIt != graphNodeMap_.end()) {
-        res = mapIt->second;
-      }
-      return res;
+      GraphNodes_t::const_iterator mapIt = graphNodeMap_.find(graphNode);
+      if (mapIt != graphNodeMap_.end())
+        return mapIt->second;
+      return empty_;
     }
 
-
   } // namespace manipulation
 } // namespace hpp
 
diff --git a/src/roadmap.cc b/src/roadmap.cc
index 746733c4b908ee4a63b5e2c4f0e2e7bf75eb1a88..009a7dbdac660b2db0bd627a9835b76272cf0a24 100644
--- a/src/roadmap.cc
+++ b/src/roadmap.cc
@@ -83,7 +83,7 @@ namespace hpp {
     {
       core::NodePtr_t result = NULL;
       minDistance = std::numeric_limits <value_type>::infinity ();
-      RoadmapNodes_t roadmapNodes = connectedComponent->getRoadmapNodes (node);
+      const RoadmapNodes_t& roadmapNodes = connectedComponent->getRoadmapNodes (node);
       for (RoadmapNodes_t::const_iterator itNode = roadmapNodes.begin ();
           itNode != roadmapNodes.end (); ++itNode) {
         value_type d = (*distance()) (*(*itNode)->configuration (),