diff --git a/include/eigenpy/eigen-from-python.hpp b/include/eigenpy/eigen-from-python.hpp
index c8556e36328f90e71e066b433952a94b608028af..aa002a8ef7274183dde227c07bc9727cb3c403d6 100644
--- a/include/eigenpy/eigen-from-python.hpp
+++ b/include/eigenpy/eigen-from-python.hpp
@@ -290,8 +290,10 @@ struct eigen_from_py_impl<MatType, Eigen::MatrixBase<MatType> > {
   static void registration();
 };
 
-template <typename EigenType, typename _Scalar>
-struct EigenFromPy : eigen_from_py_impl<EigenType> {};
+template <typename EigenType>
+struct EigenFromPy<EigenType,
+                   typename boost::remove_reference<EigenType>::type::Scalar>
+    : eigen_from_py_impl<EigenType> {};
 
 template <typename MatType>
 void *eigen_from_py_impl<MatType, Eigen::MatrixBase<MatType> >::convertible(
diff --git a/include/eigenpy/eigen-to-python.hpp b/include/eigenpy/eigen-to-python.hpp
index 013f8cf71dfd9f4ec64073f08f8545fa852c7ef1..325ded7b5f765fd01af0ce50dc96544497dcbeeb 100644
--- a/include/eigenpy/eigen-to-python.hpp
+++ b/include/eigenpy/eigen-to-python.hpp
@@ -155,8 +155,10 @@ struct eigen_to_py_impl_tensor {
 
 EIGENPY_DOCUMENTATION_END_IGNORE
 
-template <typename EigenType, typename Scalar>
-struct EigenToPy : eigen_to_py_impl<EigenType> {
+template <typename EigenType>
+struct EigenToPy<EigenType,
+                 typename boost::remove_reference<EigenType>::type::Scalar>
+    : eigen_to_py_impl<EigenType> {
   static PyTypeObject const* get_pytype() { return getPyArrayType(); }
 };