diff --git a/code/rand-mt19937.lisp b/code/rand-mt19937.lisp
index 682c06756761ce65b9685ef2aa54d4d3db052f2f..fc9b3022356b765ba59fd48d2c6c48211384049c 100644
--- a/code/rand-mt19937.lisp
+++ b/code/rand-mt19937.lisp
@@ -6,7 +6,7 @@
 ;;; placed in the Public domain, and is provided 'as is'.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/rand-mt19937.lisp,v 1.16 2008/06/24 17:27:51 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/rand-mt19937.lisp,v 1.17 2008/06/26 21:00:24 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -444,15 +444,8 @@
 		   #+long-float %long-float))
   (cond
     ((typep arg '(integer 1 #x100000000))
-     ;; Basically, pretend (random-chunk) produces a 32-bit fractional
-     ;; number, multiply by arg, and take the integer part.
-     ;;
-     ;; WARNING: If you change this be sure to make the deftransform
-     ;; for RANDOM in float-tran.lisp does the same thing.
-     (if (= arg #x100000000)
-	 (random-chunk state))
-     (values (bignum::%multiply (random-chunk state)
-				arg)))
+     ;; Let the compiler deftransform take care of this case.
+     (random arg state))
     ((and (typep arg 'single-float) (> arg 0.0F0))
      (%random-single-float arg state))
     ((and (typep arg 'double-float) (> arg 0.0D0))
diff --git a/compiler/float-tran.lisp b/compiler/float-tran.lisp
index 7d4ada68c33d88ceacdb1c7eff3f99e0c2408ddc..180ecaf816d146ed092a918183e1443a15fac72c 100644
--- a/compiler/float-tran.lisp
+++ b/compiler/float-tran.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/float-tran.lisp,v 1.120 2008/06/24 17:27:51 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/float-tran.lisp,v 1.121 2008/06/26 21:00:25 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -255,10 +255,6 @@
     ;; it were a 32-bit fraction between 0 and 1, exclusive.  Multiply
     ;; this by num-high to get a random number between 0 and num-high,
     ;; This should have no bias.
-    ;;
-    ;; WARNING: If you change this, be sure to look at the definition
-    ;; of RANDOM so that it produces the same value as the
-    ;; deftransform would produce.
     (cond ((constant-continuation-p num)
 	   (if (= num-high (expt 2 32))
 	       '(random-chunk (or state *random-state*))