diff --git a/code/numbers.lisp b/code/numbers.lisp
index 314b9129c1cb414f390df463c2a375280d01ba0c..f9d82828d699defded875bd4482f70ca321b44b5 100644
--- a/code/numbers.lisp
+++ b/code/numbers.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/numbers.lisp,v 1.44 2002/08/12 21:12:46 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/numbers.lisp,v 1.45 2002/10/07 17:44:12 toy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -875,7 +875,7 @@
 (defun max (number &rest more-numbers)
   "Returns the greatest of its arguments."
   (do ((nlist more-numbers (cdr nlist))
-       (result number))
+       (result (the real number)))
       ((null nlist) (return result))
      (declare (list nlist))
      (if (> (car nlist) result) (setq result (car nlist)))))
@@ -883,7 +883,7 @@
 (defun min (number &rest more-numbers)
   "Returns the least of its arguments."
   (do ((nlist more-numbers (cdr nlist))
-       (result number))
+       (result (the real number)))
       ((null nlist) (return result))
      (declare (list nlist))
      (if (< (car nlist) result) (setq result (car nlist)))))
diff --git a/compiler/sparc/float.lisp b/compiler/sparc/float.lisp
index 8c3be0a490a91b936638a1b56e19e8e2ae9d6edf..98d5e26cc46e81b16954296ae6484448137814a3 100644
--- a/compiler/sparc/float.lisp
+++ b/compiler/sparc/float.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/float.lisp,v 1.34 2002/03/08 18:38:21 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/float.lisp,v 1.35 2002/10/07 17:44:13 toy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -2553,13 +2553,13 @@
 (def-source-transform min (&rest args)
   (case (length args)
     ((0 2) (values nil t))
-    (1 `(values ,(first args)))
+    (1 `(values (the real ,(first args))))
     (t (c::associate-arguments 'min (first args) (rest args)))))
 
 (def-source-transform max (&rest args)
   (case (length args)
     ((0 2) (values nil t))
-    (1 `(values ,(first args)))
+    (1 `(values (the real ,(first args))))
     (t (c::associate-arguments 'max (first args) (rest args)))))
 
 ;; Derive the types of max and min
diff --git a/compiler/srctran.lisp b/compiler/srctran.lisp
index 28226ccf46a9958f3140e25b750d7340edf4fa85..979d4b70fdcc092509bdc5fae2d35d486e8c82d1 100644
--- a/compiler/srctran.lisp
+++ b/compiler/srctran.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/srctran.lisp,v 1.112 2002/09/06 18:22:36 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/srctran.lisp,v 1.113 2002/10/07 17:44:12 toy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -3223,7 +3223,7 @@
 ;;; Expand Max and Min into the obvious comparisons.
 (def-source-transform max (arg &rest more-args)
   (if (null more-args)
-      `(values ,arg)
+      `(values (the real ,arg))
       (once-only ((arg1 arg)
 		  (arg2 `(max ,@more-args)))
 	`(if (> ,arg1 ,arg2)
@@ -3231,7 +3231,7 @@
 ;;;
 (def-source-transform min (arg &rest more-args)
   (if (null more-args)
-      `(values ,arg)
+      `(values (the real ,arg))
       (once-only ((arg1 arg)
 		  (arg2 `(min ,@more-args)))
 	`(if (< ,arg1 ,arg2)