diff --git a/src/code/exports.lisp b/src/code/exports.lisp
index e75e5d77bf065a69a641110fbab1fb4c82541b7a..99e07627e20e9cd512eddc0b35d7d5e0474478bf 100644
--- a/src/code/exports.lisp
+++ b/src/code/exports.lisp
@@ -2095,7 +2095,7 @@
 	   "%CALLER-FRAME-AND-PC" "%CHECK-BOUND" "%CLOSURE-FUNCTION"
 	   "%CLOSURE-INDEX-REF" "%COS" "%COSH" "%DEPOSIT-FIELD"
 	   "%DOUBLE-FLOAT" "%DPB" "%EXP" "%EXPM1" "%HYPOT" "%LDB"
-	   "%LOG" "%LOGB" "%LOG10" "%LOG1P" "%LONG-FLOAT"
+	   "%LOG" "%LOGB" "%LOG10" "%LOG1P" "%LOG2" "%LONG-FLOAT"
 	   "%MAKE-COMPLEX" "%MAKE-FUNCALLABLE-INSTANCE" "%MAKE-RATIO"
 	   "%MASK-FIELD" "%NEGATE" "%POW"
 	   "%RAW-BITS" "%RAW-REF-COMPLEX-DOUBLE" "%RAW-REF-COMPLEX-LONG"
diff --git a/src/code/irrat.lisp b/src/code/irrat.lisp
index 11795159cf00960a07d807c4a37ff525c3ce901f..568fa46b5a8a654a7655ad0a437b2ca6c7efe9e2 100644
--- a/src/code/irrat.lisp
+++ b/src/code/irrat.lisp
@@ -82,6 +82,7 @@
 (def-math-rtn ("__ieee754_exp" %exp) 1)
 (def-math-rtn ("__ieee754_log" %log) 1)
 (def-math-rtn ("__ieee754_log10" %log10) 1)
+(def-math-rtn ("cmucl_log2" %log2) 1)
 
 (def-math-rtn ("__ieee754_pow" %pow) 2)
 #-(or x86 sparc-v7 sparc-v8 sparc-v9)
@@ -665,13 +666,13 @@
 		(number-dispatch ((number real) (base real))
 		  ((double-float
 		    (foreach integer ratio single-float double-float))
-		   (log2 number))
+		   (%log2 number))
 		  (((foreach integer ratio single-float)
 		    (foreach integer ratio single-float))
-		   (float (log2 (float number 1d0)) 1f0))
+		   (float (%log2 (float number 1d0)) 1f0))
 		  (((foreach integer ratio single-float)
 		    double-float)
-		   (log2 (float number 1d0)))
+		   (%log2 (float number 1d0)))
 		  #+double-double
 		  (((foreach integer ratio single-float double-float)
 		    double-double-float)
diff --git a/src/compiler/float-tran.lisp b/src/compiler/float-tran.lisp
index 6efe7019d910b6c492b58eaf160367416bca61fd..c30e3f785c4a04185fb930f85643dff4a059c159 100644
--- a/src/compiler/float-tran.lisp
+++ b/src/compiler/float-tran.lisp
@@ -865,7 +865,7 @@
     (cond ((= y-val 10)
 	   `(coerce (kernel:%log10 (float x 1d0)) 'single-float))
 	  ((= y-val 2)
-	   `(coerce (kernel::log2 (float x 1d0)) 'single-float)))))
+	   `(coerce (kernel:%log2 (float x 1d0)) 'single-float)))))
 
 (deftransform log ((x y) ((or (member 0d0) (double-float 0d0))
 			  (constant-argument number))
@@ -879,7 +879,7 @@
     (cond ((= y-val 10)
 	   `(kernel:%log10 (float x 1d0)))
 	  ((= y-val 2)
-	   `(kernel::log2 (float x 1d0))))))
+	   `(kernel:%log2 (float x 1d0))))))
 
 ;;; Handle some simple transformations