diff --git a/src/code/float-trap.lisp b/src/code/float-trap.lisp
index 6ed3d03602c8bd005e214a6b7014779950869a19..aa681dbd2f857b83e2460a4773825600dd5fa731 100644
--- a/src/code/float-trap.lisp
+++ b/src/code/float-trap.lisp
@@ -357,6 +357,14 @@
       ;; XXX: This seems not right.  Shouldn't we be setting the modes
       ;; in the sigcontext instead?  This however seems to do what we
       ;; want.
+
+      (format *debug-io* "sigcontext modes: #x~4x (~A)~%"
+	      modes (decode-floating-point-modes modes))
+      (format *debug-io* "current modes:    #x~4x (~A)~%"
+	      (vm:floating-point-modes) (get-floating-point-modes))
+      (format *debug-io* "new  modes: #x~x (~A)~%"
+	      new-modes (decode-floating-point-modes new-modes))
+      #+nil
       (setf (vm:floating-point-modes) new-modes))
     
     (multiple-value-bind (fop operands)
diff --git a/src/lisp/interrupt.c b/src/lisp/interrupt.c
index a87bc579a1481e56851138133d510d581a3eaeec..e28209cda3dc5afad2d2b0e0355f2216e4830b86 100644
--- a/src/lisp/interrupt.c
+++ b/src/lisp/interrupt.c
@@ -252,7 +252,9 @@ interrupt_handle_now(HANDLER_ARGS)
 
     handler = interrupt_handlers[signal];
 
+#if 0
     RESTORE_FPU(context);
+#endif
     
     if (handler.c == (void (*)(HANDLER_ARGS)) SIG_IGN)
 	return;
@@ -333,7 +335,9 @@ maybe_now_maybe_later(HANDLER_ARGS)
         setup_pending_signal(signal, code, context);
 	arch_set_pseudo_atomic_interrupted(context);
     } else {
+#if 0
 	RESTORE_FPU(context);
+#endif
 	interrupt_handle_now(signal, code, context);
     }