diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index fef176b96cd7b8a8e79deae5bcc6f2973010104d..19c7ea7569632a98190cc7360d8fd4ad2f86578b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -24,9 +24,15 @@ FOREACH(plugin ${plugins})
 
   IF(BUILD_PYTHON_INTERFACE)
     STRING(REPLACE - _ PYTHON_LIBRARY_NAME ${LIBRARY_NAME})
-    DYNAMIC_GRAPH_PYTHON_MODULE("ros/${PYTHON_LIBRARY_NAME}"
-      ${LIBRARY_NAME} ${PROJECT_NAME}-${PYTHON_LIBRARY_NAME}-wrap
-      MODULE_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/${plugin}-python.hh)
+    if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${plugin}-python-module-py.cc")
+      DYNAMIC_GRAPH_PYTHON_MODULE("ros/${PYTHON_LIBRARY_NAME}"
+        ${LIBRARY_NAME} ${PROJECT_NAME}-${PYTHON_LIBRARY_NAME}-wrap
+        SOURCE_PYTHON_MODULE "${CMAKE_CURRENT_SOURCE_DIR}/${plugin}-python-module-py.cc")
+    elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${plugin}-python.hh")
+      DYNAMIC_GRAPH_PYTHON_MODULE("ros/${PYTHON_LIBRARY_NAME}"
+        ${LIBRARY_NAME} ${PROJECT_NAME}-${PYTHON_LIBRARY_NAME}-wrap
+        MODULE_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/${plugin}-python.hh")
+    endif()
   ENDIF(BUILD_PYTHON_INTERFACE)
 ENDFOREACH(plugin)
 
diff --git a/src/ros_publish-python-module-py.cc b/src/ros_publish-python-module-py.cc
new file mode 100644
index 0000000000000000000000000000000000000000..1d952594976d93c99b5928e68865dddc940e6f27
--- /dev/null
+++ b/src/ros_publish-python-module-py.cc
@@ -0,0 +1,12 @@
+#include <dynamic-graph/python/module.hh>
+#include "ros_publish.hh"
+
+namespace dg = dynamicgraph;
+
+
+BOOST_PYTHON_MODULE(wrap)
+{
+  bp::import("dynamic_graph");
+
+  dg::python::exposeEntity<dg::RosPublish, bp::bases<dg::Entity>, dg::python::AddCommands>() ;
+}
diff --git a/src/ros_publish-python.hh b/src/ros_publish-python.hh
deleted file mode 100644
index 7be650a276301a6b4eabf71e2fe433d632796eb4..0000000000000000000000000000000000000000
--- a/src/ros_publish-python.hh
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "ros_publish.hh"
-
-typedef boost::mpl::vector< dynamicgraph::RosPublish > entities_t;