diff --git a/include/eigenpy/eigen-from-python.hpp b/include/eigenpy/eigen-from-python.hpp
index aa002a8ef7274183dde227c07bc9727cb3c403d6..f31e3512e2a00b249f2648048f82a19240cfc625 100644
--- a/include/eigenpy/eigen-from-python.hpp
+++ b/include/eigenpy/eigen-from-python.hpp
@@ -290,10 +290,16 @@ struct eigen_from_py_impl<MatType, Eigen::MatrixBase<MatType> > {
   static void registration();
 };
 
+#ifdef EIGENPY_MSVC_COMPILER
 template <typename EigenType>
 struct EigenFromPy<EigenType,
                    typename boost::remove_reference<EigenType>::type::Scalar>
-    : eigen_from_py_impl<EigenType> {};
+#else
+template <typename EigenType, typename _Scalar>
+struct EigenFromPy
+#endif
+    : 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 325ded7b5f765fd01af0ce50dc96544497dcbeeb..d7084ddf232cc70a494264672af4a3fc66aef8f1 100644
--- a/include/eigenpy/eigen-to-python.hpp
+++ b/include/eigenpy/eigen-to-python.hpp
@@ -155,9 +155,14 @@ struct eigen_to_py_impl_tensor {
 
 EIGENPY_DOCUMENTATION_END_IGNORE
 
+#ifdef EIGENPY_MSVC_COMPILER
 template <typename EigenType>
 struct EigenToPy<EigenType,
                  typename boost::remove_reference<EigenType>::type::Scalar>
+#else
+template <typename EigenType, typename _Scalar>
+struct EigenToPy
+#endif
     : eigen_to_py_impl<EigenType> {
   static PyTypeObject const* get_pytype() { return getPyArrayType(); }
 };