Index: /trunk/source/lisp-kernel/x86-exceptions.c
===================================================================
--- /trunk/source/lisp-kernel/x86-exceptions.c	(revision 14862)
+++ /trunk/source/lisp-kernel/x86-exceptions.c	(revision 14863)
@@ -866,11 +866,12 @@
   Boolean valid = IS_PAGE_FAULT(info,xp);
 
+  if (tcr->safe_ref_address != NULL) {
+    xpGPR(xp,Iimm0) = 0;
+    xpPC(xp) = xpGPR(xp,Ira0);
+    tcr->safe_ref_address = NULL;
+    return true;
+  }
+
   if (valid) {
-    if (addr && (addr == tcr->safe_ref_address)) {
-      xpGPR(xp,Iimm0) = 0;
-      xpPC(xp) = xpGPR(xp,Ira0);
-      return true;
-    }
-    
     {
       protected_area *a = find_protected_area(addr);
