diff --git a/py/runtime_utils.c b/py/runtime_utils.c
index 0b0aa4e50eff37238aa370afd65ed3efb89b93cc..e0495495aa74948810c2a434b4172ab0d1d88a3b 100644
--- a/py/runtime_utils.c
+++ b/py/runtime_utils.c
@@ -35,7 +35,7 @@ void mp_call_function_1_protected(mp_obj_t fun, mp_obj_t arg) {
         mp_call_function_1(fun, arg);
         nlr_pop();
     } else {
-        mp_obj_print_exception(&mp_plat_print, (mp_obj_t)nlr.ret_val);
+        mp_obj_print_exception(&mp_plat_print, MP_OBJ_FROM_PTR(nlr.ret_val));
     }
 }
 
@@ -45,6 +45,6 @@ void mp_call_function_2_protected(mp_obj_t fun, mp_obj_t arg1, mp_obj_t arg2) {
         mp_call_function_2(fun, arg1, arg2);
         nlr_pop();
     } else {
-        mp_obj_print_exception(&mp_plat_print, (mp_obj_t)nlr.ret_val);
+        mp_obj_print_exception(&mp_plat_print, MP_OBJ_FROM_PTR(nlr.ret_val));
     }
 }