Index: /trunk/source/lisp-kernel/x86-exceptions.c
===================================================================
--- /trunk/source/lisp-kernel/x86-exceptions.c	(revision 15090)
+++ /trunk/source/lisp-kernel/x86-exceptions.c	(revision 15091)
@@ -411,5 +411,15 @@
   f = xpGPR(xp,Ifn);
   tra = *(LispObj*)(xpGPR(xp,Isp));
-  tra_f = tra_function(tra);
+  if (tra_p(tra)) {
+    char *p = (char *)tra;
+    extern char *spentry_start, *spentry_end;
+
+    if (ptr_in_area(p, tcr->ts_area) ||
+	(p > spentry_start && p < spentry_end) ||
+	in_any_consing_area(tra))
+      tra_f = tra_function(tra);
+    else
+      Bug(xp, "martian tra %p\n", tra);
+  }
   abs_pc = (LispObj)xpPC(xp);
 #if WORD_SIZE == 64
