Index: /trunk/source/lib/numbers.lisp
===================================================================
--- /trunk/source/lib/numbers.lisp	(revision 14447)
+++ /trunk/source/lib/numbers.lisp	(revision 14448)
@@ -49,5 +49,10 @@
 
 (defconstant double-float-nan
-  #.(make-float-from-fixnums #x8000 0 #x7ff 1))
+  #.(let ((invalid (get-fpu-mode :invalid)))
+      (unwind-protect
+	   (progn
+	     (set-fpu-mode :invalid nil)
+	     (+ double-float-positive-infinity double-float-negative-infinity))
+	(set-fpu-mode :invalid invalid))))
 
 (defun parse-float (str len off)  
