diff --git a/Numeric/QD/DoubleDouble.hs b/Numeric/QD/DoubleDouble.hs
--- a/Numeric/QD/DoubleDouble.hs
+++ b/Numeric/QD/DoubleDouble.hs
@@ -125,7 +125,7 @@
   decodeFloat !x = case toRational x of
     0 -> (0, 0)
     r ->  let k = floor $ fromIntegral ff - logBase (fromIntegral $ floatRadix x) (abs x)
-              i = round $ (fromIntegral $ floatRadix x) ^ k * r
+              i = round $ (fromIntegral $ floatRadix x) ^^ k * r
               fixup m e =
                 if abs m < mMin
                   then fixup (m `shiftL` 1) (e - 1)
diff --git a/Numeric/QD/QuadDouble.hs b/Numeric/QD/QuadDouble.hs
--- a/Numeric/QD/QuadDouble.hs
+++ b/Numeric/QD/QuadDouble.hs
@@ -132,7 +132,7 @@
   decodeFloat !x = case toRational x of
     0 -> (0, 0)
     r ->  let k = floor $ fromIntegral ff - logBase (fromIntegral $ floatRadix x) (abs x)
-              i = round $ (fromIntegral $ floatRadix x) ^ k * r
+              i = round $ (fromIntegral $ floatRadix x) ^^ k * r
               fixup m e =
                 if abs m < mMin
                   then fixup (m `shiftL` 1) (e - 1)
diff --git a/qd.cabal b/qd.cabal
--- a/qd.cabal
+++ b/qd.cabal
@@ -1,5 +1,5 @@
 Name:                 qd
-Version:              0.4
+Version:              0.4.1
 Synopsis:             double-double and quad-double number type via libqd
 Description:
                       This package supports both a double-double datatype (approx. 32 decimal digits)
