diff --git a/src/code/irrat.lisp b/src/code/irrat.lisp
index bcd40c36ef3284af5a7f458147e00410cf95fcf3..6d17c6c06ec9901b205ab53bdaa4468049f6fd99 100644
--- a/src/code/irrat.lisp
+++ b/src/code/irrat.lisp
@@ -197,6 +197,20 @@
   (y0 double-float :out)
   (y1 double-float :out))
 
+(declaim (inline %%sincos))
+(alien:def-alien-routine ("sincos" %%sincos) c-call:void
+  (x double-float)
+  (s double-float :out)
+  (c double-float :out))
+
+(declaim (inline %sincos))
+(defun %sincos (x)
+  (declare (double-float x))
+  (multiple-value-bind (ign s c)
+      (%%sincos x)
+    (values s c)))
+
+#||
 ;; Implement sin/cos/tan in Lisp.  These are based on the routines
 ;; from fdlibm.
 
@@ -603,7 +617,7 @@
 	     (let ((flag (- 1 (ash (logand n 1) 1))))
 	       ;; flag = 1 if n even, -1 if n odd
 	       (kernel-tan y0 y1 flag)))))))
-
+||#
 ;; Compute sin and cos of x, simultaneously.
 (defun %sincos (x)
   (declare (double-float x)
@@ -628,7 +642,7 @@
 	     (3
 	      (values (- (kernel-cos y0 y1))
 		      (kernel-sin y0 y1 1))))))))
-(declaim (ext:end-block))
+;;(declaim (ext:end-block))
 
 
 ;;;; Power functions.