diff --git a/include/eigenpy/numpy-allocator.hpp b/include/eigenpy/numpy-allocator.hpp
index 8b9f7f3673d66da4b47a7e2ca0b444e073c53699..e0fd88288795df9ef4857ae3af54ab70bfc93458 100644
--- a/include/eigenpy/numpy-allocator.hpp
+++ b/include/eigenpy/numpy-allocator.hpp
@@ -41,9 +41,9 @@ namespace eigenpy
       enum { NPY_ARRAY_MEMORY_CONTIGUOUS = SimilarMatrixType::IsRowMajor ? NPY_ARRAY_CARRAY : NPY_ARRAY_FARRAY };
       
       PyArrayObject * pyArray = (PyArrayObject*) call_PyArray_New(nd, shape,
-                                                             NumpyEquivalentType<Scalar>::type_code,
-                                                             mat.data(),
-                                                             NPY_ARRAY_MEMORY_CONTIGUOUS | NPY_ARRAY_ALIGNED);
+                                                                  NumpyEquivalentType<Scalar>::type_code,
+                                                                  mat.data(),
+                                                                  NPY_ARRAY_MEMORY_CONTIGUOUS | NPY_ARRAY_ALIGNED);
       
       return pyArray;
     }
@@ -69,9 +69,9 @@ namespace eigenpy
       enum { NPY_ARRAY_MEMORY_CONTIGUOUS_RO = SimilarMatrixType::IsRowMajor ? NPY_ARRAY_CARRAY_RO : NPY_ARRAY_FARRAY_RO };
       
       PyArrayObject * pyArray = (PyArrayObject*) call_PyArray_New(nd, shape,
-                                                             NumpyEquivalentType<Scalar>::type_code,
-                                                             const_cast<SimilarMatrixType &>(mat.derived()).data(),
-                                                             NPY_ARRAY_MEMORY_CONTIGUOUS_RO | NPY_ARRAY_ALIGNED);
+                                                                  NumpyEquivalentType<Scalar>::type_code,
+                                                                  const_cast<SimilarMatrixType &>(mat.derived()).data(),
+                                                                  NPY_ARRAY_MEMORY_CONTIGUOUS_RO | NPY_ARRAY_ALIGNED);
       
       return pyArray;
     }
diff --git a/include/eigenpy/numpy.hpp b/include/eigenpy/numpy.hpp
index 89db48010db2c63bfc2a9a5ab69ed18cc99cce70..885c5f7f0ef35e851890ad9f0e6df281be60a819 100644
--- a/include/eigenpy/numpy.hpp
+++ b/include/eigenpy/numpy.hpp
@@ -35,9 +35,9 @@ namespace eigenpy
 #if defined _WIN32 || defined __CYGWIN__
 namespace eigenpy
 {
-  EIGENPY_DLLEXPORT PyArrayObject*  call_PyArray_SimpleNew(npy_intp nd, npy_intp * shape, NPY_TYPES np_type);
+  EIGENPY_DLLEXPORT PyObject*  call_PyArray_SimpleNew(int nd, npy_intp * shape, NPY_TYPES np_type);
 
-  EIGENPY_DLLEXPORT PyArrayObject* call_PyArray_New(npy_intp nd, npy_intp * shape, NPY_TYPES np_type, void * data_ptr, npy_intp options);
+  EIGENPY_DLLEXPORT PyObject* call_PyArray_New(int nd, npy_intp * shape, NPY_TYPES np_type, void * data_ptr, npy_intp options);
 
   EIGENPY_DLLEXPORT int call_PyArray_ObjectType(PyObject *, int);
 }
diff --git a/src/numpy.cpp b/src/numpy.cpp
index 7a1e8111c1f54a91ceab407def33d730d1fe9096..a785fe53a96f8cc085ecc6ac6af557b95f575d0c 100644
--- a/src/numpy.cpp
+++ b/src/numpy.cpp
@@ -17,12 +17,12 @@ namespace eigenpy
 
 #if defined _WIN32 || defined __CYGWIN__
 
-  PyArrayObject* call_PyArray_SimpleNew(npy_intp nd, npy_intp * shape, NPY_TYPES np_type)
+  PyObject* call_PyArray_SimpleNew(int nd, npy_intp * shape, NPY_TYPES np_type)
   {
-    return PyArray_SimpleNew(nd,shape,np_type);
+    return (PyArrayObject*)PyArray_SimpleNew(nd,shape,np_type);
   }
 
-  PyArrayObject* call_PyArray_New(npy_intp nd, npy_intp * shape, NPY_TYPES np_type, void * data_ptr, npy_intp options)
+  PyObject* call_PyArray_New(int nd, npy_intp * shape, NPY_TYPES np_type, void * data_ptr, npy_intp options)
   {
     return PyArray_New(&PyArray_Type,nd,shape,np_type,NULL,data_ptr,0,options,NULL);
   }