diff --git a/Objects/intobject.c b/Objects/intobject.c
index 9baee8e..d4532f4 100644
--- a/Objects/intobject.c
+++ b/Objects/intobject.c
@@ -78,7 +78,8 @@
 static PyIntObject *small_ints[NSMALLNEGINTS + NSMALLPOSINTS];
 #endif
 #ifdef COUNT_ALLOCS
-int quick_int_allocs, quick_neg_int_allocs;
+Py_ssize_t quick_int_allocs;
+Py_ssize_t quick_neg_int_allocs;
 #endif
 
 PyObject *
diff --git a/Objects/object.c b/Objects/object.c
index 7b82db9..1e0db4a 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -81,24 +81,29 @@
    garbage itself. If unlist_types_without_objects
    is set, they will be removed from the type_list
    once the last object is deallocated. */
-int unlist_types_without_objects;
-extern int tuple_zero_allocs, fast_tuple_allocs;
-extern int quick_int_allocs, quick_neg_int_allocs;
-extern int null_strings, one_strings;
+static int unlist_types_without_objects;
+extern Py_ssize_t tuple_zero_allocs, fast_tuple_allocs;
+extern Py_ssize_t quick_int_allocs, quick_neg_int_allocs;
+extern Py_ssize_t null_strings, one_strings;
 void
 dump_counts(FILE* f)
 {
 	PyTypeObject *tp;
 
 	for (tp = type_list; tp; tp = tp->tp_next)
-		fprintf(f, "%s alloc'd: %d, freed: %d, max in use: %d\n",
+		fprintf(f, "%s alloc'd: %" PY_FORMAT_SIZE_T "d, "
+			"freed: %" PY_FORMAT_SIZE_T "d, "
+			"max in use: %" PY_FORMAT_SIZE_T "d\n",
 			tp->tp_name, tp->tp_allocs, tp->tp_frees,
 			tp->tp_maxalloc);
-	fprintf(f, "fast tuple allocs: %d, empty: %d\n",
+	fprintf(f, "fast tuple allocs: %" PY_FORMAT_SIZE_T "d, "
+		"empty: %" PY_FORMAT_SIZE_T "d\n",
 		fast_tuple_allocs, tuple_zero_allocs);
-	fprintf(f, "fast int allocs: pos: %d, neg: %d\n",
+	fprintf(f, "fast int allocs: pos: %" PY_FORMAT_SIZE_T "d, "
+		"neg: %" PY_FORMAT_SIZE_T "d\n",
 		quick_int_allocs, quick_neg_int_allocs);
-	fprintf(f, "null strings: %d, 1-strings: %d\n",
+	fprintf(f, "null strings: %" PY_FORMAT_SIZE_T "d, "
+		"1-strings: %" PY_FORMAT_SIZE_T "d\n",
 		null_strings, one_strings);
 }
 
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 2c365fb..8f82f4f 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -7,7 +7,7 @@
 #include <stddef.h>
 
 #ifdef COUNT_ALLOCS
-int null_strings, one_strings;
+Py_ssize_t null_strings, one_strings;
 #endif
 
 static PyStringObject *characters[UCHAR_MAX + 1];
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index b1a7003..d7cb25a 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -19,8 +19,8 @@
 static int numfree[PyTuple_MAXSAVESIZE];
 #endif
 #ifdef COUNT_ALLOCS
-int fast_tuple_allocs;
-int tuple_zero_allocs;
+Py_ssize_t fast_tuple_allocs;
+Py_ssize_t tuple_zero_allocs;
 #endif
 
 PyObject *
