diff --git a/py/binary.c b/py/binary.c
index 71d715c3e162e83ff1134cde4d0c8122b11f9d75..b28eb6426c6ee41a382862fb58829fa93e2ed518 100644
--- a/py/binary.c
+++ b/py/binary.c
@@ -42,7 +42,7 @@ int mp_binary_get_size(char typecode) {
 }
 
 mp_obj_t mp_binary_get_val(char typecode, void *p, int index) {
-    int val = 0;
+    machine_int_t val = 0;
     switch (typecode) {
         case 'b':
             val = ((int8_t*)p)[index];