diff --git a/py/objexcept.c b/py/objexcept.c
index b4a831c628c917cb04a6be36c2bf10e31f22c445..ad66bb50febfa8e8087c5e950b44aafdfa028f52 100644
--- a/py/objexcept.c
+++ b/py/objexcept.c
@@ -336,10 +336,13 @@ void mp_obj_exception_clear_traceback(mp_obj_t self_in) {
 }
 
 void mp_obj_exception_add_traceback(mp_obj_t self_in, qstr file, machine_uint_t line, qstr block) {
+    #if MICROPY_ENABLE_GC
     if (gc_is_locked()) {
         // We can't allocate memory, so don't bother to try
         return;
     }
+    #endif
+
     GET_NATIVE_EXCEPTION(self, self_in);
 
     // for traceback, we are just using the list object for convenience, it's not really a list of Python objects