diff --git a/Control/Concurrent/SCC/Combinators.hs b/Control/Concurrent/SCC/Combinators.hs
--- a/Control/Concurrent/SCC/Combinators.hs
+++ b/Control/Concurrent/SCC/Combinators.hs
@@ -81,7 +81,7 @@
 import Control.Category ((>>>))
 import Control.Monad (liftM, when)
 import qualified Control.Monad as Monad
-import Control.Monad.Trans (lift)
+import Control.Monad.Trans.Class (lift)
 import Data.Maybe (isJust, isNothing, fromJust)
 import qualified Data.Foldable as Foldable
 import qualified Data.Sequence as Seq
diff --git a/Control/Concurrent/SCC/Primitives.hs b/Control/Concurrent/SCC/Primitives.hs
--- a/Control/Concurrent/SCC/Primitives.hs
+++ b/Control/Concurrent/SCC/Primitives.hs
@@ -57,7 +57,7 @@
 import Control.Exception (assert)
 
 import Control.Monad (liftM, when)
-import Control.Monad.Trans (lift)
+import Control.Monad.Trans.Class (lift)
 import qualified Control.Monad as Monad
 import Data.Char (isAlpha, isDigit, isPrint, isSpace, toLower, toUpper)
 import Data.List (delete, isPrefixOf, stripPrefix)
diff --git a/Shell.hs b/Shell.hs
--- a/Shell.hs
+++ b/Shell.hs
@@ -1,4 +1,3 @@
-
 {- 
     Copyright 2008-2010 Mario Blazevic
 
@@ -26,7 +25,7 @@
 import Control.Concurrent (forkIO)
 import Control.Exception (evaluate)
 import Control.Monad (liftM, when)
-import Control.Monad.Trans (lift)
+import Control.Monad.Trans.Class (lift)
 import qualified Text.Parsec as Parsec
 import qualified Text.Parsec.String as Parsec
 import Text.Parsec hiding (count, parse)
diff --git a/Test.hs b/Test.hs
--- a/Test.hs
+++ b/Test.hs
@@ -28,9 +28,9 @@
 import qualified Control.Concurrent.SCC.Components as C
 
 import Control.Monad (liftM, when)
-import Control.Monad.Identity (Identity (Identity, runIdentity))
 import Data.Char (ord, isLetter, isSpace, toUpper)
 import Data.Either (rights)
+import Data.Functor.Identity (Identity (Identity, runIdentity))
 import Data.List (find, findIndices, groupBy, intersect, union,
                   intercalate, isInfixOf, isPrefixOf, isSuffixOf, nub, sort, tails)
 import Data.Maybe (fromJust, isJust, mapMaybe)
diff --git a/scc.cabal b/scc.cabal
--- a/scc.cabal
+++ b/scc.cabal
@@ -1,5 +1,5 @@
 Name:                scc
-Version:             0.5
+Version:             0.5.1
 Cabal-Version:       >= 1.2
 Build-Type:          Simple
 Synopsis:            Streaming component combinators
@@ -32,7 +32,7 @@
                      Control.Concurrent.SCC.Combinators, Control.Concurrent.SCC.Primitives,
                      Control.Concurrent.SCC.XML,
                      Control.Concurrent.Configuration, Control.Concurrent.SCC.Components
-  Build-Depends:     base < 5, containers, transformers, monad-parallel, monad-coroutine,
+  Build-Depends:     base < 5, containers, transformers >= 0.2 && < 0.3, monad-parallel, monad-coroutine,
                      process, readline, parsec >= 3.0 && < 4.0
   GHC-options:       -threaded
 
@@ -41,5 +41,5 @@
                      Control.Concurrent.SCC.Combinators, Control.Concurrent.SCC.Primitives,
                      Control.Concurrent.SCC.XML,
                      Control.Concurrent.Configuration, Control.Concurrent.SCC.Components
-  Build-Depends:     base < 5, containers, transformers, monad-parallel, monad-coroutine
+  Build-Depends:     base < 5, containers, transformers >= 0.2 && < 0.3, monad-parallel, monad-coroutine
   GHC-prof-options:  -auto-all
