diff --git a/CMakeLists.txt b/CMakeLists.txt
index b0ba54b8c3980d3cc5e8f40cd5ae60f487022e2b..62444d9bf985480493f1726b7889e6256823e601 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -45,10 +45,12 @@ SET (${PROJECT_NAME}_HEADERS
   include/hpp/manipulation/object.hh
   include/hpp/manipulation/problem-solver.hh
   include/hpp/manipulation/robot.hh
+  include/hpp/manipulation/manipulation-planner.hh
   include/hpp/manipulation/graph/node.hh
   include/hpp/manipulation/graph/edge.hh
   include/hpp/manipulation/graph/node-selector.hh
   include/hpp/manipulation/graph/graph.hh
+  include/hpp/manipulation/graph/fwd.hh
   )
 
 # Add dependency toward hpp-model library in pkg-config file.
diff --git a/include/hpp/manipulation/fwd.hh b/include/hpp/manipulation/fwd.hh
index bf9bdf53d251f8f06c6a92a47d9f537c03d5afd5..0a0b3b7f15566eed027a72e31f30389a1572c814 100644
--- a/include/hpp/manipulation/fwd.hh
+++ b/include/hpp/manipulation/fwd.hh
@@ -61,6 +61,8 @@ namespace hpp {
     typedef model::vector_t vector_t;
     typedef model::vectorIn_t vectorIn_t;
     typedef model::vectorOut_t vectorOut_t;
+    HPP_PREDEF_CLASS (ManipulationPlanner);
+    typedef boost::shared_ptr < ManipulationPlanner > ManipulationPlannerPtr_t;
 
     typedef std::vector <DevicePtr_t> Devices_t;
     typedef std::vector <ObjectPtr_t> Objects_t;
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index fb3c29bb80d4c547af4a7ed95e1368036a7f0144..d06cc63b3d0876a20d0fd0b6e39090bc9e319a71 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -24,6 +24,7 @@ ADD_LIBRARY(${LIBRARY_NAME} SHARED
   handle.cc
   problem-solver.cc
   robot.cc
+  manipulation-planner.cc
 )
 
 PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} hpp-core)