Index: /trunk/ccl/lisp-kernel/x86-exceptions.c
===================================================================
--- /trunk/ccl/lisp-kernel/x86-exceptions.c	(revision 4836)
+++ /trunk/ccl/lisp-kernel/x86-exceptions.c	(revision 4837)
@@ -576,8 +576,11 @@
 
   switch (signum) {
-  case SIGSEGV:
-    if (((info->si_code) &0x7f) == 0) {
-      /* Something mapped to SIGSEGV that has nothing to do with
-	 a memory fault */
+  case SIGNUM_FOR_INTN_TRAP:
+    if (IS_MAYBE_INT_TRAP(info,context)) {
+      /* Something mapped to SIGSEGV/SIGBUS that has nothing to do with
+	 a memory fault.  On x86, an "int n" instruction that's
+         not otherwise implemented causes a "protecton fault".  Of
+         course that has nothing to do with accessing protected
+         memory; of course, most Unices act as if it did.*/
       if (*program_counter == INTN_OPCODE) {
 	program_counter++;
@@ -746,4 +749,5 @@
   exit_signal_handler(tcr, old_valence);
   /* raise_pending_interrupt(tcr); */
+  SIGRETURN(context);
 }
 
@@ -875,4 +879,5 @@
     }
   }
+  SIGRETURN(context);
 }
 
