Index: /branches/watchpoints/lisp-kernel/x86-exceptions.c
===================================================================
--- /branches/watchpoints/lisp-kernel/x86-exceptions.c	(revision 12879)
+++ /branches/watchpoints/lisp-kernel/x86-exceptions.c	(revision 12880)
@@ -832,4 +832,6 @@
 	if ((fulltag_of(cmain) == fulltag_misc) &&
 	    (header_subtag(header_of(cmain)) == subtag_macptr)) {
+	  LispObj save_vsp = xpGPR(xp, Isp);
+	  LispObj save_fp = xpGPR(xp, Ifp);
 	  LispObj xcf = create_exception_callback_frame(xp, tcr);
 	  int skip;
@@ -838,4 +840,6 @@
 	  skip = callback_to_lisp(tcr, cmain, xp, xcf, SIGSEGV, 2, (natural) addr, obj);
 	  xpPC(xp) += skip;
+	  xpGPR(xp, Ifp) = save_fp;
+	  xpGPR(xp, Isp) = save_vsp;
 	  return true;
 	}
