diff --git a/py/objfun.c b/py/objfun.c
index 88e84ce9fcef5ef6f8f297744706075d83263a07..4c1b7211d17b96eca7aeabeb9ec06c770e42f38f 100644
--- a/py/objfun.c
+++ b/py/objfun.c
@@ -167,7 +167,7 @@ STATIC void dump_args(const mp_obj_t *a, mp_uint_t sz) {
 #if MICROPY_STACKLESS
 mp_code_state *mp_obj_fun_bc_prepare_codestate(mp_obj_t self_in, mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args) {
     MP_STACK_CHECK();
-    mp_obj_fun_bc_t *self = self_in;
+    mp_obj_fun_bc_t *self = MP_OBJ_TO_PTR(self_in);
 
     // get start of bytecode
     const byte *ip = self->bytecode;
diff --git a/py/vm.c b/py/vm.c
index 5bf14eb75b821d2636ebc74f49e0cae0fde0e7a9..8bf59f1e05039f3a728212371eafae632824fc62 100644
--- a/py/vm.c
+++ b/py/vm.c
@@ -973,7 +973,7 @@ unwind_jump:;
 
                         mp_uint_t n_args = unum & 0xff;
                         mp_uint_t n_kw = (unum >> 8) & 0xff;
-                        int adjust = (sp[1] == NULL) ? 0 : 1;
+                        int adjust = (sp[1] == MP_OBJ_NULL) ? 0 : 1;
 
                         mp_code_state *new_state = mp_obj_fun_bc_prepare_codestate(*sp, n_args + adjust, n_kw, sp + 2 - adjust);
                         if (new_state) {