diff --git a/ghc/lib/std/PrelNum.lhs b/ghc/lib/std/PrelNum.lhs
index a562facc640198324057bc30bc37581bbe3841a8..679329ab4d3f15576327d98fb10730e0b6ad0f43 100644
--- a/ghc/lib/std/PrelNum.lhs
+++ b/ghc/lib/std/PrelNum.lhs
@@ -848,7 +848,7 @@ jtos' n cs
   = if n < 10 then
 	chr (fromInteger (n + ord_0)) : cs
     else 
-	jtos' (n `quot` 10) (chr (fromInteger (n `rem` 10 + ord_0)) : cs)
+	jtos' (n `quot` 10) (chr (toInt (n `rem` 10) + (ord_0::Int)) : cs)
 
 showFloat x  =  showString (formatRealFloat FFGeneric Nothing x)