diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index be02445061d37f8803de9067101344114cd6154d..c75f577c27c1fac88505415bab60ae981c246ed7 100755
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -28,7 +28,11 @@ OMNIIDL_INCLUDE_DIRECTORIES(
   ${HPP_CORBASERVER_DATAROOTDIR}/idl ${CMAKE_SOURCE_DIR}/idl
   )
 
+# search for python
+FINDPYTHON(2.7 EXACT REQUIRED)
+
 INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/src)
+FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/hpp/corbaserver/rbprm)
 FOREACH(IDL ${IDL_SOURCES})
   GENERATE_IDL_CPP (${IDL}
     ${CMAKE_SOURCE_DIR}/idl/hpp/corbaserver/rbprm
@@ -38,23 +42,40 @@ FOREACH(IDL ${IDL_SOURCES})
 		)
 ENDFOREACH()
 
+FOREACH(IDL ${IDL_SOURCES})
+  GENERATE_IDL_CPP (hpp/corbaserver/rbprm/${IDL}
+    ${CMAKE_SOURCE_DIR}/idl/hpp/corbaserver/rbprm)
+  GENERATE_IDL_PYTHON (hpp/corbaserver/rbprm/${IDL}
+    ${CMAKE_SOURCE_DIR}/idl/hpp/corbaserver/rbprm)
+
+  INSTALL(
+    FILES ${CMAKE_CURRENT_BINARY_DIR}/hpp/corbaserver/rbprm/${IDL}.hh
+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hpp/corbaserver/rbprm)
+  INSTALL(
+    FILES ${CMAKE_CURRENT_BINARY_DIR}/hpp/corbaserver/rbprm/${IDL}_idl.py
+    DESTINATION ${PYTHON_SITELIB}/hpp/corbaserver/rbprm)
+ENDFOREACH()
+
 FOREACH(IDL ${HPP_CORBASERVER_IDL_SOURCES})
   GENERATE_IDL_CPP (${IDL}
     ${HPP_CORBASERVER_DATAROOTDIR}/idl/hpp/corbaserver
-		)
-	GENERATE_IDL_PYTHON (${IDL}
-	    ${HPP_CORBASERVER_DATAROOTDIR}/idl/hpp/corbaserver
-		)
+    )
+  GENERATE_IDL_PYTHON (${IDL}
+    ${HPP_CORBASERVER_DATAROOTDIR}/idl/hpp/corbaserver
+    )
+  INSTALL(FILES
+    ${CMAKE_CURRENT_BINARY_DIR}/${IDL}_idl.py
+    DESTINATION ${PYTHON_SITELIB}/hpp/corbaserver/rbprm)
 ENDFOREACH()
 
 ADD_LIBRARY(${LIBRARY_NAME} SHARED
   common.hh
   commonSK.cc
-	rbprmbuilder.hh
-	rbprmbuilderSK.cc
-	rbprmbuilder.impl.cc
-	rbprmbuilder.impl.hh
-	server.cc
+  ${CMAKE_CURRENT_BINARY_DIR}/hpp/corbaserver/rbprm/rbprmbuilder.hh
+  ${CMAKE_CURRENT_BINARY_DIR}/hpp/corbaserver/rbprm/rbprmbuilderSK.cc
+  rbprmbuilder.impl.cc
+  rbprmbuilder.impl.hh
+  server.cc
 )
 
 ADD_CUSTOM_TARGET(generate_idl_cpp DEPENDS ${ALL_IDL_CPP_STUBS})
@@ -71,9 +92,6 @@ PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} hpp-affordance-corba)
 
 INSTALL(TARGETS ${LIBRARY_NAME} DESTINATION lib)
 
-# search for python
-FINDPYTHON()
-
 INSTALL(
   FILES
   ${CMAKE_CURRENT_SOURCE_DIR}/hpp/corbaserver/rbprm/__init__.py
diff --git a/src/rbprmbuilder.impl.cc b/src/rbprmbuilder.impl.cc
index 625127a54fcfc6a52e94ef88cca5dbc815a976e9..948fcf36cf36ed5c302656a2e3cbde9d96aeaf14 100755
--- a/src/rbprmbuilder.impl.cc
+++ b/src/rbprmbuilder.impl.cc
@@ -17,8 +17,10 @@
 
 //#include <hpp/fcl/math/transform.h>
 #include <hpp/util/debug.hh>
+#include "hpp/corbaserver/rbprm/rbprmbuilder.hh"
 #include "rbprmbuilder.impl.hh"
 #include "hpp/rbprm/rbprm-device.hh"
+#include "hpp/rbprm/rbprm-device.hh"
 #include "hpp/rbprm/rbprm-validation.hh"
 #include "hpp/rbprm/interpolation/rbprm-path-interpolation.hh"
 #include "hpp/rbprm/interpolation/limb-rrt-helper.hh"