diff --git a/include/eigenpy/eigenpy.hpp b/include/eigenpy/eigenpy.hpp
index f4edf090d36a2df10d71ad214ad0b73cfd1d8f8b..cfd2498c2555d8a93020fe522b4bcca684837983 100644
--- a/include/eigenpy/eigenpy.hpp
+++ b/include/eigenpy/eigenpy.hpp
@@ -10,6 +10,9 @@
 #include "eigenpy/eigen-typedef.hpp"
 #include "eigenpy/expose.hpp"
 
+/// Custom CallPolicies
+#include "eigenpy/std_unique_ptr.hpp"
+
 #define ENABLE_SPECIFIC_MATRIX_TYPE(TYPE) \
   ::eigenpy::enableEigenPySpecific<TYPE>();
 
diff --git a/include/eigenpy/std_unique_ptr.hpp b/include/eigenpy/std_unique_ptr.hpp
index 4c2185cbc9419f7d9151bf3513a5ab301f6661a2..2c1c7bdd95282750650e92c405f3c25bd193c339 100644
--- a/include/eigenpy/std_unique_ptr.hpp
+++ b/include/eigenpy/std_unique_ptr.hpp
@@ -130,4 +130,15 @@ struct ReturnInternalStdUniquePtr : bp::return_internal_reference<> {
 
 }  // namespace eigenpy
 
+namespace boost {
+namespace python {
+
+template <typename T>
+struct to_python_value<const std::unique_ptr<T>&>
+    : eigenpy::details::StdUniquePtrResultConverter::apply<
+          std::unique_ptr<T> >::type {};
+
+}  // namespace python
+}  // namespace boost
+
 #endif  // ifndef __eigenpy_utils_std_unique_ptr_hpp__
diff --git a/unittest/std_unique_ptr.cpp b/unittest/std_unique_ptr.cpp
index f2419287f135982edeba50e0b1230f549d1c6abb..bbf8a3605ba9856f29e4a938d2484749f6551b0d 100644
--- a/unittest/std_unique_ptr.cpp
+++ b/unittest/std_unique_ptr.cpp
@@ -35,10 +35,8 @@ BOOST_PYTHON_MODULE(std_unique_ptr) {
 
   bp::class_<V1>("V1", bp::init<>()).def_readwrite("v", &V1::v);
 
-  bp::def("make_unique_int", make_unique_int,
-          eigenpy::StdUniquePtrCallPolicies());
-  bp::def("make_unique_v1", make_unique_v1,
-          eigenpy::StdUniquePtrCallPolicies());
+  bp::def("make_unique_int", make_unique_int);
+  bp::def("make_unique_v1", make_unique_v1);
   bp::def("make_unique_null", make_unique_null,
           eigenpy::StdUniquePtrCallPolicies());