diff --git a/src/Data/Vault/ST_GHC.hs b/src/Data/Vault/ST_GHC.hs
--- a/src/Data/Vault/ST_GHC.hs
+++ b/src/Data/Vault/ST_GHC.hs
@@ -9,8 +9,11 @@
 import qualified Data.IntMap as IntMap
 import Data.IORef
 import Control.Monad.ST
-import Control.Monad.ST.Unsafe
-
+#if MIN_VERSION_base(4,4,0)
+import Control.Monad.ST.Unsafe as STUnsafe
+#else
+import Control.Monad.ST as STUnsafe
+#endif
 
 import Data.Unique.Really
 
@@ -38,7 +41,7 @@
 empty = Vault Map.empty
 
 newKey :: ST s (Key s a)
-newKey = Control.Monad.ST.Unsafe.unsafeIOToST $ Key <$> newUnique
+newKey = STUnsafe.unsafeIOToST $ Key <$> newUnique
 
 lookup :: Key s a -> Vault s -> Maybe a
 lookup (Key k) (Vault m) = fromAny <$> Map.lookup k m
diff --git a/vault.cabal b/vault.cabal
--- a/vault.cabal
+++ b/vault.cabal
@@ -1,5 +1,5 @@
 Name:               vault
-Version:            0.2.0.3
+Version:            0.2.0.4
 Synopsis:           a persistent store for values of arbitrary types
 Description:
   A /vault/ is a persistent store for values of arbitrary types.
