diff --git a/include/hpp/manipulation/connected-component.hh b/include/hpp/manipulation/connected-component.hh
index a27c6cf26dc20187ba77c6f710c22dd82a70fd4d..aacad2584983100612cd22b8307978087a6585f0 100644
--- a/include/hpp/manipulation/connected-component.hh
+++ b/include/hpp/manipulation/connected-component.hh
@@ -51,7 +51,7 @@ class HPP_MANIPULATION_DLLAPI ConnectedComponent : public core::ConnectedCompone
       /// Merge two connected components (extension of core::ConnectedComponent::merge)
       /// \param other manipulation connected component to merge into this one.
       /// \note other will be empty after calling this method.
-      void merge (const ConnectedComponentPtr_t& other); 
+      void merge (const core::ConnectedComponentPtr_t& otherCC); 
          
       /// Add roadmap node to connected component
       /// \param roadmap node to be added
diff --git a/src/connected-component.cc b/src/connected-component.cc
index 3c2a3fe19df96483277e6a5482a203804203349f..b4a0b9cfdea8588ec139b9187bf3a047cebaabbb 100644
--- a/src/connected-component.cc
+++ b/src/connected-component.cc
@@ -40,10 +40,10 @@ namespace hpp {
 //      CC->rdmp_ = roadmap.lock ();
 //    }
  
-    void ConnectedComponent::merge (const ConnectedComponentPtr_t& other)
+    void ConnectedComponent::merge (const core::ConnectedComponentPtr_t& otherCC)
     {
-      core::ConnectedComponent::merge(other);
-
+      core::ConnectedComponent::merge(otherCC);
+      const ConnectedComponentPtr_t other = boost::static_pointer_cast <ConnectedComponent> (otherCC);
       /// take all graph nodes in other->graphNodeMap_ and put them in this->graphNodeMap_
       /// if they already exist in this->graphNodeMap_, append roadmap nodes from other graph node
       /// to graph node in this.