diff --git a/include/hpp/manipulation/constraint-set.hh b/include/hpp/manipulation/constraint-set.hh
index baced7df334912faa075209b9b589b0055c6b3fb..3f55b80f45dbfe322a5c5c8bc8708921e2001cff 100644
--- a/include/hpp/manipulation/constraint-set.hh
+++ b/include/hpp/manipulation/constraint-set.hh
@@ -84,4 +84,6 @@ namespace hpp {
   } // namespace manipulation
 } // namespace hpp
 
+BOOST_CLASS_EXPORT_KEY(hpp::manipulation::ConstraintSet)
+
 #endif // HPP_MANIPULATION_CONSTRAINT_SET_HH
diff --git a/include/hpp/manipulation/device.hh b/include/hpp/manipulation/device.hh
index 95059c46fbd71cecd701bc1a39d0035b0b927956..184199732a062e78dc060b75bb13ca9b14795ee6 100644
--- a/include/hpp/manipulation/device.hh
+++ b/include/hpp/manipulation/device.hh
@@ -97,4 +97,7 @@ namespace hpp {
     }; // class Device
   } // namespace manipulation
 } // namespace hpp
+
+BOOST_CLASS_EXPORT_KEY(hpp::manipulation::Device)
+
 #endif // HPP_MANIPULATION_DEVICE_HH
diff --git a/include/hpp/manipulation/serialization.hh b/include/hpp/manipulation/serialization.hh
index 181ca28946b2779e295726d1740f4a5195508dd2..f53e1f58701ac2d3bdcd5cbfc836fa8d19411447 100644
--- a/include/hpp/manipulation/serialization.hh
+++ b/include/hpp/manipulation/serialization.hh
@@ -41,6 +41,11 @@ struct archive_graph_wrapper {
 } // namespace manipulation
 } // namespace hpp
 
+BOOST_CLASS_EXPORT_KEY(hpp::manipulation::RoadmapNode)
+BOOST_CLASS_EXPORT_KEY(hpp::manipulation::LeafConnectedComp)
+BOOST_CLASS_EXPORT_KEY(hpp::manipulation::WeighedLeafConnectedComp)
+BOOST_CLASS_EXPORT_KEY(hpp::manipulation::Roadmap)
+
 namespace boost {
 namespace serialization {
 template<class Archive>
diff --git a/src/constraint-set.cc b/src/constraint-set.cc
index 29270ee10d9ef47824fb7862b3f70e85cbed7f82..eade2e807825d6bcecd6b04296efeed9f127e726 100644
--- a/src/constraint-set.cc
+++ b/src/constraint-set.cc
@@ -93,4 +93,4 @@ namespace hpp {
   } // namespace manipulation
 } // namespace hpp
 
-BOOST_CLASS_EXPORT(hpp::manipulation::ConstraintSet)
+BOOST_CLASS_EXPORT_IMPLEMENT(hpp::manipulation::ConstraintSet)
diff --git a/src/device.cc b/src/device.cc
index e5c8541edc324cf3b0de7cd9ab55bfd3ed99fdd4..6015df4ee5a02a2a371e2b66bcd1e9cf3d6e31fa 100644
--- a/src/device.cc
+++ b/src/device.cc
@@ -160,4 +160,4 @@ namespace hpp {
   } // namespace pinocchio
 } // namespace hpp
 
-BOOST_CLASS_EXPORT(hpp::manipulation::Device)
+BOOST_CLASS_EXPORT_IMPLEMENT(hpp::manipulation::Device)
diff --git a/src/serialization.cc b/src/serialization.cc
index cc33d04caf9a3c47b7db9e377ac7631145da9933..43da85454e7de3049803fec97c886b4a8537122a 100644
--- a/src/serialization.cc
+++ b/src/serialization.cc
@@ -29,10 +29,10 @@
 #include <hpp/manipulation/roadmap.hh>
 #include <hpp/manipulation/serialization.hh>
 
-BOOST_CLASS_EXPORT(hpp::manipulation::RoadmapNode)
-BOOST_CLASS_EXPORT(hpp::manipulation::LeafConnectedComp)
-BOOST_CLASS_EXPORT(hpp::manipulation::WeighedLeafConnectedComp)
-BOOST_CLASS_EXPORT(hpp::manipulation::Roadmap)
+BOOST_CLASS_EXPORT_IMPLEMENT(hpp::manipulation::RoadmapNode)
+BOOST_CLASS_EXPORT_IMPLEMENT(hpp::manipulation::LeafConnectedComp)
+BOOST_CLASS_EXPORT_IMPLEMENT(hpp::manipulation::WeighedLeafConnectedComp)
+BOOST_CLASS_EXPORT_IMPLEMENT(hpp::manipulation::Roadmap)
 
 namespace hpp {
 namespace manipulation {