diff --git a/distributed-process-monad-control.cabal b/distributed-process-monad-control.cabal
--- a/distributed-process-monad-control.cabal
+++ b/distributed-process-monad-control.cabal
@@ -2,7 +2,7 @@
 --   For further documentation, see http://haskell.org/cabal/users-guide/
 
 name:                distributed-process-monad-control
-version:             0.5.0
+version:             0.5.1
 synopsis:            Orphan instances for MonadBase and MonadBaseControl.
 homepage:            http://haskell-distributed.github.io
 license:             BSD3
@@ -19,7 +19,10 @@
   @'MonadBaseControl' @'IO' for the @'Process' monad. This is for use
   in conjunction with a library requiring these instances, such as the
   @<http://hackage.haskell.org/package/lifted-base lifted-base> package.
-  . 
+  .
+  A tutorial segment regarding use of this in distributed-process applications may
+  be found <http://haskell-distributed.github.io/tutorials/3ch.html#monad-transformer-stacks here>.
+  .
   example usage:
   . 
   >import Control.Distributed.Process.MonadBaseControl()
@@ -33,7 +36,7 @@
   -- other-modules:       
   build-depends:      base >= 4.4 && <= 5
                     , distributed-process >= 0.4.2 && < 0.6.0
-                    , monad-control >= 0.3 && <= 0.4
+                    , monad-control >= 0.3 && < 1.1
                     , transformers
                     , transformers-base >= 0.4.1 && <= 0.5.0 
   hs-source-dirs:     src
diff --git a/src/Control/Distributed/Process/MonadBaseControl.hs b/src/Control/Distributed/Process/MonadBaseControl.hs
--- a/src/Control/Distributed/Process/MonadBaseControl.hs
+++ b/src/Control/Distributed/Process/MonadBaseControl.hs
@@ -2,7 +2,12 @@
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE StandaloneDeriving #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE CPP #-}
 
+#if MIN_VERSION_monad_control(1,0,0)
+{-# LANGUAGE UndecidableInstances #-}
+#endif
+
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 -- | This module only exports instances for 'MonadBase' 'IO' and
 -- 'MonadBaseControl' 'IO' for the 'Process' monad. This is for use
@@ -32,7 +37,15 @@
 
 deriving instance MonadBase IO Process
 
+
+#if MIN_VERSION_monad_control(1,0,0)
 instance MonadBaseControl IO Process where
+  type StM Process a = StM (ReaderT LocalProcess IO) a
+  liftBaseWith f = Process $ liftBaseWith $ \ rib -> f (rib . unProcess)
+  restoreM = Process . restoreM
+#else
+instance MonadBaseControl IO Process where
   newtype StM Process a = StProcess {_unSTProcess :: StM (ReaderT LocalProcess IO) a}
   restoreM (StProcess m) = Process $ restoreM m
   liftBaseWith f = Process $ liftBaseWith $ \ rib -> f (fmap StProcess . rib . unProcess)
+#endif
