diff --git a/src/Control/Monad/Trans/ST/Internal.hs b/src/Control/Monad/Trans/ST/Internal.hs
--- a/src/Control/Monad/Trans/ST/Internal.hs
+++ b/src/Control/Monad/Trans/ST/Internal.hs
@@ -84,6 +84,6 @@
 -- | Allow the result of a state transformer computation to be used (lazily) inside the computation.
 --   Note that if f is strict, fixSTT f = _|_.
 fixSTT :: (MonadFix m) => (a -> STT s m a) -> STT s m a
-fixSTT k = STT $ \ s -> do
-    rec ans@(STTRet _ r) <- unSTT (k r) s
+fixSTT k = STT $ \ s -> mdo
+    ans@(STTRet _ r) <- unSTT (k r) s
     return ans
diff --git a/stt.cabal b/stt.cabal
--- a/stt.cabal
+++ b/stt.cabal
@@ -1,5 +1,5 @@
 name:                stt
-version:             0.2.0.0
+version:             0.2.1
 synopsis:            A monad transformer version of the ST monad
 license:             MIT
 license-file:        LICENSE
@@ -8,7 +8,7 @@
 category:            Control
 build-type:          Simple
 cabal-version:       >=1.10
-Tested-With:         GHC == 7.8.*, GHC == 7.10.*, GHC == 8.0.*
+Tested-With:         GHC >= 7.4 && <= 8.0.2
 description:	
    A monad transformer version of the ST monad
 
@@ -26,7 +26,7 @@
 library
   exposed-modules:     Control.Monad.Trans.ST
                        Control.Monad.Trans.ST.Internal
-  build-depends:       base >= 4.6 && < 5
+  build-depends:       base >= 4.5 && < 5
                      , mtl  >= 2.2.1 && < 3
                      , primitive >= 0.6.1 && < 0.7
   hs-source-dirs:      src
