diff --git a/py/emit.h b/py/emit.h
index 4f60a6fff812a76397ea9032ec1165e9ce709db1..9d09ee2eface24573c476fe05b310d3122441dcd 100644
--- a/py/emit.h
+++ b/py/emit.h
@@ -85,7 +85,7 @@ typedef struct _emit_method_table_t {
     void (*load_const_tok)(emit_t *emit, mp_token_kind_t tok);
     void (*load_const_small_int)(emit_t *emit, mp_int_t arg);
     void (*load_const_str)(emit_t *emit, qstr qst);
-    void (*load_const_obj)(emit_t *emit, void *obj);
+    void (*load_const_obj)(emit_t *emit, mp_obj_t obj);
     void (*load_null)(emit_t *emit);
     void (*load_attr)(emit_t *emit, qstr qst);
     void (*load_method)(emit_t *emit, qstr qst);
@@ -205,7 +205,7 @@ void mp_emit_bc_import_star(emit_t *emit);
 void mp_emit_bc_load_const_tok(emit_t *emit, mp_token_kind_t tok);
 void mp_emit_bc_load_const_small_int(emit_t *emit, mp_int_t arg);
 void mp_emit_bc_load_const_str(emit_t *emit, qstr qst);
-void mp_emit_bc_load_const_obj(emit_t *emit, void *obj);
+void mp_emit_bc_load_const_obj(emit_t *emit, mp_obj_t obj);
 void mp_emit_bc_load_null(emit_t *emit);
 void mp_emit_bc_load_attr(emit_t *emit, qstr qst);
 void mp_emit_bc_load_method(emit_t *emit, qstr qst);
diff --git a/py/emitbc.c b/py/emitbc.c
index 062a7ea233b1c3d1b643eac1ff5ac2a3df558777..580ff165c00e9ce8fc3b5625779dfa7cc8ba68a1 100644
--- a/py/emitbc.c
+++ b/py/emitbc.c
@@ -542,7 +542,7 @@ void mp_emit_bc_load_const_str(emit_t *emit, qstr qst) {
     emit_write_bytecode_byte_qstr(emit, MP_BC_LOAD_CONST_STRING, qst);
 }
 
-void mp_emit_bc_load_const_obj(emit_t *emit, void *obj) {
+void mp_emit_bc_load_const_obj(emit_t *emit, mp_obj_t obj) {
     emit_bc_pre(emit, 1);
     emit_write_bytecode_byte_obj(emit, MP_BC_LOAD_CONST_OBJ, obj);
 }
diff --git a/py/emitnative.c b/py/emitnative.c
index 2abc46c9368887d7e1ac285f485bc8be77f979ed..34e0b928b5f88d3bb1fc5b3ab6536e9b8406fc99 100644
--- a/py/emitnative.c
+++ b/py/emitnative.c
@@ -1344,7 +1344,7 @@ STATIC void emit_native_load_const_str(emit_t *emit, qstr qst) {
     }
 }
 
-STATIC void emit_native_load_const_obj(emit_t *emit, void *obj) {
+STATIC void emit_native_load_const_obj(emit_t *emit, mp_obj_t obj) {
     emit_native_pre(emit);
     need_reg_single(emit, REG_RET, 0);
     ASM_MOV_ALIGNED_IMM_TO_REG(emit->as, (mp_uint_t)obj, REG_RET);