diff --git a/include/hpp/manipulation/fwd.hh b/include/hpp/manipulation/fwd.hh
index e6bc6b78d42289ad4ec6b28152d32e8323743419..2a1c6aeed31cbe439285a35f8999c666176e7853 100644
--- a/include/hpp/manipulation/fwd.hh
+++ b/include/hpp/manipulation/fwd.hh
@@ -119,6 +119,7 @@ namespace hpp {
     typedef std::vector<core::vector3_t> Shape_t;
     typedef std::pair <JointPtr_t, Shape_t> JointAndShape_t;
     typedef std::list <JointAndShape_t> JointAndShapes_t;
+    typedef std::list <std::string> StringList_t;
     typedef HPP_MANIPULATION_DEPRECATED Shape_t Triangle;
     typedef HPP_MANIPULATION_DEPRECATED JointAndShape_t JointAndTriangle_t;
     typedef HPP_MANIPULATION_DEPRECATED JointAndShapes_t JointAndTriangles_t;
diff --git a/include/hpp/manipulation/problem-solver.hh b/include/hpp/manipulation/problem-solver.hh
index a451f1319959ebd576a39efde055b6af46ba25ac..406fc5c565e6b9a5c20e0022cff2b2944559919d 100644
--- a/include/hpp/manipulation/problem-solver.hh
+++ b/include/hpp/manipulation/problem-solver.hh
@@ -99,8 +99,8 @@ namespace hpp {
         /// \param margin see hpp::constraints::ConvexShapeContact::setNormalMargin
 	/// 
 	void createPlacementConstraint (const std::string& name,
-					const std::list<std::string>& surface1,
-					const std::list<std::string>& surface2,
+					const StringList_t& surface1,
+					const StringList_t& surface2,
                                         const value_type& margin = 1e-4);
 
 	/// Create pre-placement constraint
@@ -111,8 +111,8 @@ namespace hpp {
         /// \param margin see hpp::constraints::ConvexShapeContact::setNormalMargin
 	/// 
 	void createPrePlacementConstraint (const std::string& name,
-					   const std::list<std::string>& surface1,
-					   const std::list<std::string>& surface2,
+					   const StringList_t& surface1,
+					   const StringList_t& surface2,
                                            const value_type& width,
                                            const value_type& margin = 1e-4);
 
diff --git a/src/problem-solver.cc b/src/problem-solver.cc
index 3b1228afd9c8d5afb1c43dca001a32c5ecd3cd9b..621c187cc035bc2dd4f439bc06f9ffe5670d26e5 100644
--- a/src/problem-solver.cc
+++ b/src/problem-solver.cc
@@ -50,8 +50,6 @@
 namespace hpp {
   namespace manipulation {
     namespace {
-      typedef std::list<std::string> StringList_t;
-
       struct PartialShortcutTraits :
         core::pathOptimization::PartialShortcutTraits {
           static bool removeLockedJoints () { return false; }
@@ -151,8 +149,8 @@ namespace hpp {
     }
 
     void ProblemSolver::createPlacementConstraint
-    (const std::string& name, const std::list<std::string>& surface1,
-     const std::list<std::string>& surface2, const value_type& margin)
+    (const std::string& name, const StringList_t& surface1,
+     const StringList_t& surface2, const value_type& margin)
     {
       if (!robot_) throw std::runtime_error ("No robot loaded");
       using constraints::ConvexShape;
@@ -201,8 +199,8 @@ namespace hpp {
     }
 
     void ProblemSolver::createPrePlacementConstraint
-    (const std::string& name, const std::list<std::string>& surface1,
-     const std::list<std::string>& surface2, const value_type& width,
+    (const std::string& name, const StringList_t& surface1,
+     const StringList_t& surface2, const value_type& width,
      const value_type& margin)
     {
       if (!robot_) throw std::runtime_error ("No robot loaded");