diff --git a/include/eigenpy/details.hpp b/include/eigenpy/details.hpp
index d725159f18d4a9732b12a4153dbb7e836f2c8de5..b76357dea9125342a6d23f9acbe070517194ccf9 100644
--- a/include/eigenpy/details.hpp
+++ b/include/eigenpy/details.hpp
@@ -265,6 +265,19 @@ namespace eigenpy
         }
       }
       
+      if (PyArray_NDIM(obj_ptr) == 2)
+      {
+        const int R = (int)PyArray_DIMS(obj_ptr)[0];
+        const int C = (int)PyArray_DIMS(obj_ptr)[1];
+        
+        if( (MatType::RowsAtCompileTime!=R)
+           && (MatType::RowsAtCompileTime!=Eigen::Dynamic) )
+          return 0;
+        if( (MatType::ColsAtCompileTime!=C)
+           && (MatType::ColsAtCompileTime!=Eigen::Dynamic) )
+          return 0;
+      }
+      
       // Check if the Scalar type of the obj_ptr is compatible with the Scalar type of MatType
       if ((PyArray_ObjectType(reinterpret_cast<PyObject *>(obj_ptr), 0)) == NPY_INT)
       {