Index: /trunk/ccl/lisp-kernel/x86-exceptions.c
===================================================================
--- /trunk/ccl/lisp-kernel/x86-exceptions.c	(revision 6024)
+++ /trunk/ccl/lisp-kernel/x86-exceptions.c	(revision 6025)
@@ -2210,5 +2210,5 @@
       CLR_TCR_FLAG(tcr,TCR_FLAG_BIT_PENDING_EXCEPTION);
     } 
-    if ((exception == EXC_BAD_INSTRUCTION) &&
+    if ((code == EXC_I386_GPFLT) &&
         ((natural)(ts_pc(ts)) == (natural)pseudo_sigreturn)) {
       kret = do_pseudo_sigreturn(thread, tcr);
@@ -2222,5 +2222,9 @@
       switch (exception) {
       case EXC_BAD_ACCESS:
-        signum = SIGBUS;
+        if (code == EXC_I386_GPFLT) {
+          signum = SIGSEGV;
+        } else {
+          signum = SIGBUS;
+        }
         break;
         
