diff --git a/include/hpp/manipulation/problem-solver.hh b/include/hpp/manipulation/problem-solver.hh
index d37ee93306c3ecf4eb03d2b8e477f8aae945513d..b7ac344cdf8fd7d7afaa9a1e34f6b42fc86969ca 100644
--- a/include/hpp/manipulation/problem-solver.hh
+++ b/include/hpp/manipulation/problem-solver.hh
@@ -139,7 +139,7 @@ namespace hpp {
         }
 
       protected:
-        void initializeProblem (ProblemPtr_t problem);
+        virtual void initializeProblem (ProblemPtr_t problem);
 
       private:
         DevicePtr_t robot_;
diff --git a/src/manipulation-planner.cc b/src/manipulation-planner.cc
index 7a69a2eab1a12a18e8aa8c761b462852f7d30643..b92c1404d04a9b05aee8194cd5955599927fd501 100644
--- a/src/manipulation-planner.cc
+++ b/src/manipulation-planner.cc
@@ -208,7 +208,7 @@ namespace hpp {
     ManipulationPlanner::ManipulationPlanner (const Problem& problem,
         const core::RoadmapPtr_t& roadmap) :
       core::PathPlanner (problem, roadmap),
-      shooter_ (new core::BasicConfigurationShooter (problem.robot ())),
+      shooter_ (problem.configurationShooter()),
       problem_ (problem), qProj_ (problem.robot ()->configSize ())
     {}