diff --git a/src/code/float.lisp b/src/code/float.lisp
index 3ac65127eb3f78992e0647926c36007d30824033..ee6e579523b79d05764b9dff6e5d66ff15833f9b 100644
--- a/src/code/float.lisp
+++ b/src/code/float.lisp
@@ -1047,9 +1047,13 @@
 		(number-dispatch ((x real))
 		  (((foreach single-float double-float
 			     #+long-float long-float
-			     #+double-double double-double-float
 			     fixnum))
 		   (coerce x ',type))
+		  #+double-double
+		  ((double-double-float)
+		   (coerce (+ (double-double-hi x)
+			      (double-double-lo x))
+			   ',type))
 		  ((bignum)
 		   (bignum-to-float x ',type))
 		  ((ratio)