diff --git a/ldb/interrupt.c b/ldb/interrupt.c
index 6c38c3f7956d0e7fb58ff9aa6f761f70fb182d07..e99352873db604fa51e361e6a1a0b088c1f2a0a1 100644
--- a/ldb/interrupt.c
+++ b/ldb/interrupt.c
@@ -1,4 +1,4 @@
-/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/interrupt.c,v 1.33 1992/03/22 19:57:46 wlott Exp $ */
+/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/interrupt.c,v 1.34 1992/03/22 20:25:51 wlott Exp $ */
 
 /* Interrupt handing magic. */
 
@@ -323,9 +323,13 @@ struct sigcontext *context;
 	if (
 #ifdef mips
 	    context->sc_regs[FLAGS] & (1<<flag_Atomic)
+#else
+#ifdef sparc
+	    context->sc_regs[ALLOC] & 4
 #else
 	    SymbolValue(PSEUDO_ATOMIC_ATOMIC)
-#endif
+#endif sparc
+#endif mips
 	    ) {
 	    maybe_gc_pending = TRUE;
 	    if (pending_signal == 0) {
@@ -334,8 +338,12 @@ struct sigcontext *context;
 	    }
 #ifdef mips
 	    context->sc_regs[FLAGS] |= (1<<flag_Interrupted);
+#else
+#ifdef sparc
+	    context->sc_regs[ALLOC] |= 1;
 #else
 	    SetSymbolValue(PSEUDO_ATOMIC_INTERRUPTED, T);
+#endif
 #endif
 	}
 	else {