diff --git a/py/mpconfig.h b/py/mpconfig.h
index 78c288d7c3990218da60eeff130a9665634b16a6..633a4a52dd8a3e9f31f9eea2e2132e1073898df8 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -448,6 +448,10 @@ typedef double mp_float_t;
 #define MP_PLAT_FREE_EXEC(ptr, size) m_del(byte, ptr, size)
 #endif
 
+#ifndef MP_SSIZE_MAX
+#define MP_SSIZE_MAX SSIZE_MAX
+#endif
+
 // printf format spec to use for mp_int_t and friends
 #ifndef INT_FMT
 #ifdef __LP64__
diff --git a/py/objint_longlong.c b/py/objint_longlong.c
index c4c16139fd02454935285f58b812eefc0c9af017..43bdcabdcec92bb15d79fc2b387f9502ff9d93bf 100644
--- a/py/objint_longlong.c
+++ b/py/objint_longlong.c
@@ -52,7 +52,7 @@
 
 #if MICROPY_PY_SYS_MAXSIZE
 // Export value for sys.maxsize
-const mp_obj_int_t mp_maxsize_obj = {{&mp_type_int}, INT_MAX};
+const mp_obj_int_t mp_maxsize_obj = {{&mp_type_int}, MP_SSIZE_MAX};
 #endif
 
 mp_int_t mp_obj_int_hash(mp_obj_t self_in) {
diff --git a/py/objint_mpz.c b/py/objint_mpz.c
index 20fba00bf70a89922772f5ea885b5c98c18591e7..440b4f31872c1dd596327c3c5711e313b73a1578 100644
--- a/py/objint_mpz.c
+++ b/py/objint_mpz.c
@@ -47,14 +47,14 @@
 // Export value for sys.maxsize
 #define DIG_MASK ((1L << MPZ_DIG_SIZE) - 1)
 STATIC const mpz_dig_t maxsize_dig[MPZ_NUM_DIG_FOR_INT] = {
-    (INT_MAX >> MPZ_DIG_SIZE * 0) & DIG_MASK,
-    #if (INT_MAX >> MPZ_DIG_SIZE * 0) > DIG_MASK
-    (INT_MAX >> MPZ_DIG_SIZE * 1) & DIG_MASK,
-    #if (INT_MAX >> MPZ_DIG_SIZE * 1) > DIG_MASK
-    (INT_MAX >> MPZ_DIG_SIZE * 2) & DIG_MASK,
-    (INT_MAX >> MPZ_DIG_SIZE * 3) & DIG_MASK,
-    (INT_MAX >> MPZ_DIG_SIZE * 4) & DIG_MASK,
-//    (INT_MAX >> MPZ_DIG_SIZE * 5) & DIG_MASK,
+    (MP_SSIZE_MAX >> MPZ_DIG_SIZE * 0) & DIG_MASK,
+    #if (MP_SSIZE_MAX >> MPZ_DIG_SIZE * 0) > DIG_MASK
+    (MP_SSIZE_MAX >> MPZ_DIG_SIZE * 1) & DIG_MASK,
+    #if (MP_SSIZE_MAX >> MPZ_DIG_SIZE * 1) > DIG_MASK
+    (MP_SSIZE_MAX >> MPZ_DIG_SIZE * 2) & DIG_MASK,
+    (MP_SSIZE_MAX >> MPZ_DIG_SIZE * 3) & DIG_MASK,
+    (MP_SSIZE_MAX >> MPZ_DIG_SIZE * 4) & DIG_MASK,
+//    (MP_SSIZE_MAX >> MPZ_DIG_SIZE * 5) & DIG_MASK,
     #endif
     #endif
 };