diff --git a/py/mpprint.c b/py/mpprint.c
index 9ad0f3f9a0e4d403fd2a6fb5478dbf70a0a789e3..72d1c55ca0dcb2656583a2250a7e03d9c3ca9706 100644
--- a/py/mpprint.c
+++ b/py/mpprint.c
@@ -202,6 +202,11 @@ STATIC int mp_print_int(const mp_print_t *print, mp_uint_t x, int sgn, int base,
 }
 
 int mp_print_mp_int(const mp_print_t *print, mp_obj_t x, int base, int base_char, int flags, char fill, int width, int prec) {
+    // These are the only values for "base" that are required to be supported by this
+    // function, since Python only allows the user to format integers in these bases.
+    // If needed this function could be generalised to handle other values.
+    assert(base == 2 || base == 8 || base == 10 || base == 16);
+
     if (!MP_OBJ_IS_INT(x)) {
         // This will convert booleans to int, or raise an error for
         // non-integer types.