- if (SymbolValue(GC_INHIBIT,thread) == NIL)
- set_pseudo_atomic_interrupted(thread);
+ if (SymbolValue(GC_INHIBIT,thread) == NIL) {
+ set_pseudo_atomic_interrupted(thread);
+#ifdef LISP_FEATURE_PPC
+ /* PPC calls alloc() from a trap, look up the most
+ * recent one and frob that. */
+ maybe_save_gc_mask_and_block_deferrables
+ (get_interrupt_context_for_thread(thread));
+#else
+ maybe_save_gc_mask_and_block_deferrables(NULL);
+#endif
+ }