--- exceptions.cc	2002-07-24 07:39:22.000000000 +0200
+++ exceptions.cc.patched	2002-08-16 20:32:07.000000000 +0200
@@ -686,7 +686,8 @@ interrupt_setup (int sig, void *handler,
   sigsave.retaddr = retaddr;
   sigsave.retaddr_on_stack = retaddr_on_stack;
   /* FIXME: Not multi-thread aware */
-  sigsave.newmask = myself->getsigmask () | siga.sa_mask | SIGTOMASK (sig);
+  sigsave.oldmask = myself->getsigmask ();
+  sigsave.newmask = sigsave.oldmask | siga.sa_mask | SIGTOMASK (sig);
   sigsave.sa_flags = siga.sa_flags;
   sigsave.func = (void (*)(int)) handler;
   sigsave.sig = sig;
