diff --git a/py/nlr.h b/py/nlr.h
index 2c09de0ba4284b1509024690fe689bd9648174bb..16cab1c6678763729c86bc7ba6ecb69c25bc5317 100644
--- a/py/nlr.h
+++ b/py/nlr.h
@@ -99,6 +99,7 @@ void nlr_jump_fail(void *val);
         nlr_jump(_val); \
     } while (0)
 
+#if !MICROPY_NLR_SETJMP
 #define nlr_push(val) \
     assert(MP_STATE_VM(nlr_top) != val),nlr_push(val)
 
@@ -107,6 +108,7 @@ void nlr_jump_fail(void *val);
     printf("nlr_push: before: nlr_top=%p, val=%p\n", MP_STATE_VM(nlr_top), val),assert(MP_STATE_VM(nlr_top) != val),nlr_push(val)
 #endif
 */
+#endif
 
 #endif