diff --git a/extmod/vfs_fat.c b/extmod/vfs_fat.c
index 0ec3fe6d2ed6bad1c64d66ee7343b248f90aa21d..b2705411192f4b55721c94bcc2b4c5a3345f3149 100644
--- a/extmod/vfs_fat.c
+++ b/extmod/vfs_fat.c
@@ -243,7 +243,7 @@ STATIC mp_obj_t fat_vfs_stat(mp_obj_t vfs_in, mp_obj_t path_in) {
     t->items[3] = MP_OBJ_NEW_SMALL_INT(0); // st_nlink
     t->items[4] = MP_OBJ_NEW_SMALL_INT(0); // st_uid
     t->items[5] = MP_OBJ_NEW_SMALL_INT(0); // st_gid
-    t->items[6] = MP_OBJ_NEW_SMALL_INT(fno.fsize); // st_size
+    t->items[6] = mp_obj_new_int_from_uint(fno.fsize); // st_size
     t->items[7] = MP_OBJ_NEW_SMALL_INT(seconds); // st_atime
     t->items[8] = MP_OBJ_NEW_SMALL_INT(seconds); // st_mtime
     t->items[9] = MP_OBJ_NEW_SMALL_INT(seconds); // st_ctime
diff --git a/unix/modos.c b/unix/modos.c
index 8b5d5790f33477a45248fa834d010fccd1f1970e..5030fbb65b5af13c458de15008c7678a13217e5b 100644
--- a/unix/modos.c
+++ b/unix/modos.c
@@ -58,7 +58,7 @@ STATIC mp_obj_t mod_os_stat(mp_obj_t path_in) {
     t->items[3] = MP_OBJ_NEW_SMALL_INT(sb.st_nlink);
     t->items[4] = MP_OBJ_NEW_SMALL_INT(sb.st_uid);
     t->items[5] = MP_OBJ_NEW_SMALL_INT(sb.st_gid);
-    t->items[6] = MP_OBJ_NEW_SMALL_INT(sb.st_size);
+    t->items[6] = mp_obj_new_int_from_uint(sb.st_size);
     t->items[7] = MP_OBJ_NEW_SMALL_INT(sb.st_atime);
     t->items[8] = MP_OBJ_NEW_SMALL_INT(sb.st_mtime);
     t->items[9] = MP_OBJ_NEW_SMALL_INT(sb.st_ctime);