Index: /trunk/ccl/lisp-kernel/ppc-exceptions.c
===================================================================
--- /trunk/ccl/lisp-kernel/ppc-exceptions.c	(revision 6280)
+++ /trunk/ccl/lisp-kernel/ppc-exceptions.c	(revision 6281)
@@ -894,17 +894,14 @@
   }
 
-  if (! is_write_fault(xp, info)) {
-    return -1;
-  }
-
-  area = find_protected_area(addr);
-
-  if (area == NULL) {		/* Don't know why this fault happened. */
-    return -1;
-  }
-  
-  handler = protection_handlers[area->why];
-
-  return handler(xp, area, addr);
+
+  if (is_write_fault(xp,info)) {
+    area = find_protected_area(addr);
+    if (area != NULL) {
+      handler = protection_handlers[area->why];
+      return handler(xp, area, addr);
+    }
+  }
+  callback_for_trap(nrs_CMAIN.vcell, xp, (pc)xpPC(xp), SIGBUS, (natural)addr, is_write_fault(xp,info));
+  return -1;
 }
 
