diff --git a/Control/Monad/ST/Class.hs b/Control/Monad/ST/Class.hs
--- a/Control/Monad/ST/Class.hs
+++ b/Control/Monad/ST/Class.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeFamilies, FlexibleInstances, UndecidableInstances #-}
+{-# LANGUAGE CPP, TypeFamilies, FlexibleInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Control.Monad.ST.Class
@@ -13,12 +13,16 @@
 module Control.Monad.ST.Class (MonadST(..)) where
 
 import Control.Monad.Trans.Class
+#ifdef MIN_VERSION_base(4,4,0)
+import Control.Monad.ST.Safe
+#else
 import Control.Monad.ST
+#endif
 
 class Monad m => MonadST m where
   type World m :: *
   liftST :: ST (World m) a -> m a
-  
+
 instance MonadST IO where
   type World IO = RealWorld
   liftST = stToIO
diff --git a/monad-st.cabal b/monad-st.cabal
--- a/monad-st.cabal
+++ b/monad-st.cabal
@@ -1,6 +1,6 @@
 name:          monad-st
 category:      Control, Monads
-version:       0.2.1.1
+version:       0.2.2
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
