diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+2.2.0.1
+-------
+* Fixed a bug caused by the change in how `transformers` 0.4 exports its data types. We will now export `runFooT` for each transformer again!
+
 2.2
 ---
 * `transformers` 0.4 support
diff --git a/Control/Monad/Cont.hs b/Control/Monad/Cont.hs
--- a/Control/Monad/Cont.hs
+++ b/Control/Monad/Cont.hs
@@ -58,7 +58,8 @@
     mapCont,
     withCont,
     -- * The ContT monad transformer
-    ContT(..),
+    ContT(ContT),
+    runContT,
     mapContT,
     withContT,
     module Control.Monad,
diff --git a/Control/Monad/Error.hs b/Control/Monad/Error.hs
--- a/Control/Monad/Error.hs
+++ b/Control/Monad/Error.hs
@@ -37,7 +37,8 @@
     MonadError(..),
     Error(..),
     -- * The ErrorT monad transformer
-    ErrorT(..),
+    ErrorT(ErrorT),
+    runErrorT,
     mapErrorT,
     module Control.Monad,
     module Control.Monad.Fix,
@@ -51,7 +52,7 @@
 
 import Control.Monad.Error.Class
 import Control.Monad.Trans
-import Control.Monad.Trans.Error (ErrorT(..), mapErrorT)
+import Control.Monad.Trans.Error (ErrorT(ErrorT), runErrorT, mapErrorT)
 
 import Control.Monad
 import Control.Monad.Fix
diff --git a/Control/Monad/RWS/Lazy.hs b/Control/Monad/RWS/Lazy.hs
--- a/Control/Monad/RWS/Lazy.hs
+++ b/Control/Monad/RWS/Lazy.hs
@@ -27,7 +27,8 @@
     mapRWS,
     withRWS,
     -- * The RWST monad transformer
-    RWST(..),
+    RWST(RWST),
+    runRWST,
     evalRWST,
     execRWST,
     mapRWST,
@@ -45,7 +46,7 @@
 import Control.Monad.Trans
 import Control.Monad.Trans.RWS.Lazy (
     RWS, rws, runRWS, evalRWS, execRWS, mapRWS, withRWS,
-    RWST(..), evalRWST, execRWST, mapRWST, withRWST)
+    RWST(RWST), runRWST, evalRWST, execRWST, mapRWST, withRWST)
 
 import Control.Monad
 import Control.Monad.Fix
diff --git a/Control/Monad/RWS/Strict.hs b/Control/Monad/RWS/Strict.hs
--- a/Control/Monad/RWS/Strict.hs
+++ b/Control/Monad/RWS/Strict.hs
@@ -27,7 +27,8 @@
     mapRWS,
     withRWS,
     -- * The RWST monad transformer
-    RWST(..),
+    RWST(RWST),
+    runRWST,
     evalRWST,
     execRWST,
     mapRWST,
@@ -45,7 +46,7 @@
 import Control.Monad.Trans
 import Control.Monad.Trans.RWS.Strict (
     RWS, rws, runRWS, evalRWS, execRWS, mapRWS, withRWS,
-    RWST(..), evalRWST, execRWST, mapRWST, withRWST)
+    RWST(RWST), runRWST, evalRWST, execRWST, mapRWST, withRWST)
 
 import Control.Monad
 import Control.Monad.Fix
diff --git a/Control/Monad/Reader.hs b/Control/Monad/Reader.hs
--- a/Control/Monad/Reader.hs
+++ b/Control/Monad/Reader.hs
@@ -45,7 +45,8 @@
     mapReader,
     withReader,
     -- * The ReaderT monad transformer
-    ReaderT(..),
+    ReaderT(ReaderT),
+    runReaderT,
     mapReaderT,
     withReaderT,
     module Control.Monad,
@@ -65,7 +66,7 @@
 
 import Control.Monad.Trans.Reader (
     Reader, runReader, mapReader, withReader,
-    ReaderT(..), mapReaderT, withReaderT)
+    ReaderT(ReaderT), runReaderT, mapReaderT, withReaderT)
 import Control.Monad.Trans
 
 import Control.Monad
diff --git a/Control/Monad/State/Lazy.hs b/Control/Monad/State/Lazy.hs
--- a/Control/Monad/State/Lazy.hs
+++ b/Control/Monad/State/Lazy.hs
@@ -32,7 +32,8 @@
     mapState,
     withState,
     -- * The StateT monad transformer
-    StateT(..),
+    StateT(StateT),
+    runStateT,
     evalStateT,
     execStateT,
     mapStateT,
@@ -49,7 +50,7 @@
 import Control.Monad.Trans
 import Control.Monad.Trans.State.Lazy
         (State, runState, evalState, execState, mapState, withState,
-         StateT(..), evalStateT, execStateT, mapStateT, withStateT)
+         StateT(StateT), runStateT, evalStateT, execStateT, mapStateT, withStateT)
 
 import Control.Monad
 import Control.Monad.Fix
diff --git a/Control/Monad/State/Strict.hs b/Control/Monad/State/Strict.hs
--- a/Control/Monad/State/Strict.hs
+++ b/Control/Monad/State/Strict.hs
@@ -32,7 +32,8 @@
     mapState,
     withState,
     -- * The StateT monad transformer
-    StateT(..),
+    StateT(StateT),
+    runStateT,
     evalStateT,
     execStateT,
     mapStateT,
@@ -49,7 +50,7 @@
 import Control.Monad.Trans
 import Control.Monad.Trans.State.Strict
         (State, runState, evalState, execState, mapState, withState,
-         StateT(..), evalStateT, execStateT, mapStateT, withStateT)
+         StateT(StateT), runStateT, evalStateT, execStateT, mapStateT, withStateT)
 
 import Control.Monad
 import Control.Monad.Fix
diff --git a/Control/Monad/Writer/Lazy.hs b/Control/Monad/Writer/Lazy.hs
--- a/Control/Monad/Writer/Lazy.hs
+++ b/Control/Monad/Writer/Lazy.hs
@@ -28,7 +28,8 @@
     execWriter,
     mapWriter,
     -- * The WriterT monad transformer
-    WriterT(..),
+    WriterT(WriterT),
+    runWriterT,
     execWriterT,
     mapWriterT,
     module Control.Monad,
@@ -42,7 +43,7 @@
 import Control.Monad.Trans
 import Control.Monad.Trans.Writer.Lazy (
         Writer, runWriter, execWriter, mapWriter,
-        WriterT(..), execWriterT, mapWriterT)
+        WriterT(WriterT), runWriterT, execWriterT, mapWriterT)
 
 import Control.Monad
 import Control.Monad.Fix
diff --git a/mtl.cabal b/mtl.cabal
--- a/mtl.cabal
+++ b/mtl.cabal
@@ -1,5 +1,5 @@
 name:         mtl
-version:      2.2
+version:      2.2.0.1
 cabal-version: >= 1.6
 license:      BSD3
 license-file: LICENSE
