diff --git a/unittest/python/test_user_type.py b/unittest/python/test_user_type.py
index 316c03147e34ef8f8e5899fda0fc32ac30364f5e..956108d395ad6c61a5bd9d5723d3bdf52ce8e811 100644
--- a/unittest/python/test_user_type.py
+++ b/unittest/python/test_user_type.py
@@ -6,13 +6,13 @@ rows = 10
 cols = 20
 
 def test(dtype):
-  mat = np.ones((rows,cols),dtype=dtype)
+  mat = np.array(np.ones((rows,cols)).astype(np.intc),dtype=dtype)
   mat = np.random.rand(rows,cols).astype(dtype)
   mat_copy = mat.copy()
   assert (mat == mat_copy).all()
   assert not (mat != mat_copy).all()
 
-#  if version.parse(np.__version__) >= version.parse("1.21.0"): # check if it fixes for new versio of NumPy 
+#  if version.parse(np.__version__) >= version.parse("1.21.0"): # check if it fixes for new versio of NumPy
 #    mat.fill(mat.dtype.type(20.))
 #    mat_copy = mat.copy()
 #    assert((mat == mat_copy).all())
@@ -20,7 +20,7 @@ def test(dtype):
 
   mat_op = mat + mat
   mat_op = mat.copy(order='F') + mat.copy(order='C')
-  
+
   mat_op = mat - mat
   mat_op = mat * mat
   mat_op = mat.dot(mat.T)
@@ -45,7 +45,7 @@ def test_cast(from_dtype,to_dtype):
 
   from_mat = np.zeros((rows,cols),dtype=from_dtype)
   to_mat = from_mat.astype(dtype=to_dtype)
-  
+
 test(user_type.CustomDouble)
 
 test_cast(user_type.CustomDouble,np.double)
diff --git a/unittest/user_type.cpp b/unittest/user_type.cpp
index 22bc566061a473ccedeae064b9dc10ffded9bbc4..46a34480dadf37e88d7ce2e7bacd95af68992de0 100644
--- a/unittest/user_type.cpp
+++ b/unittest/user_type.cpp
@@ -198,12 +198,14 @@ BOOST_PYTHON_MODULE(user_type)
   eigenpy::registerCast<double,DoubleType>(true);
   eigenpy::registerCast<DoubleType,int32_t>(false);
   eigenpy::registerCast<int32_t,DoubleType>(true);
-  eigenpy::registerCast<DoubleType,int64_t>(false);
-  eigenpy::registerCast<int64_t,DoubleType>(true);
+  eigenpy::registerCast<DoubleType,long long>(false);
+  eigenpy::registerCast<long long,DoubleType>(true);
   eigenpy::registerCast<FloatType,double>(true);
   eigenpy::registerCast<double,FloatType>(false);
-  eigenpy::registerCast<FloatType,int64_t>(false);
-  eigenpy::registerCast<int64_t,FloatType>(true);
+  eigenpy::registerCast<FloatType,long long>(false);
+  eigenpy::registerCast<long long,FloatType>(true);
+  eigenpy::registerCast<FloatType,int32_t>(false);
+  eigenpy::registerCast<int32_t,FloatType>(true);
 
   bp::implicitly_convertible<double,DoubleType>();
   bp::implicitly_convertible<DoubleType,double>();