diff --git a/Data/Double/Conversion/Text.hs b/Data/Double/Conversion/Text.hs
--- a/Data/Double/Conversion/Text.hs
+++ b/Data/Double/Conversion/Text.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE MagicHash, Rank2Types #-}
+{-# LANGUAGE CPP, MagicHash, Rank2Types #-}
 
 -- |
 -- Module      : Data.Double.Conversion.Text
@@ -24,7 +24,12 @@
     ) where
 
 import Control.Monad (when)
-import Control.Monad.ST (unsafeIOToST, runST)
+#if MIN_VERSION_base(4,4,0)
+import Control.Monad.ST.Unsafe (unsafeIOToST)
+#else
+import Control.Monad.ST (unsafeIOToST)
+#endif
+import Control.Monad.ST (runST)
 import Data.Double.Conversion.FFI
 import Data.Text.Internal (Text(Text))
 import Foreign.C.Types (CDouble, CInt)
diff --git a/double-conversion.cabal b/double-conversion.cabal
--- a/double-conversion.cabal
+++ b/double-conversion.cabal
@@ -1,5 +1,5 @@
 name:           double-conversion
-version:        0.2.0.3
+version:        0.2.0.4
 license:        BSD3
 license-file:   LICENSE
 homepage:       https://github.com/bos/double-conversion
@@ -94,7 +94,7 @@
   cpp-options: -DINTEGER_GMP
 
   if impl(ghc >= 6.11)
-    build-depends: integer-gmp >= 0.2 && < 0.4
+    build-depends: integer-gmp >= 0.2 && < 0.5
 
   if impl(ghc >= 6.9) && impl(ghc < 6.11)
     build-depends: integer >= 0.1 && < 0.2
