diff --git a/Control/Monad/Ref.hs b/Control/Monad/Ref.hs
--- a/Control/Monad/Ref.hs
+++ b/Control/Monad/Ref.hs
@@ -28,7 +28,7 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Control.Monad.Ref
--- Copyright   :  (c) Harvard University 2006-2010
+-- Copyright   :  (c) Harvard University 2006-2011
 -- License     :  BSD-style
 -- Maintainer  :  mainland@eecs.harvard.edu
 --
@@ -53,15 +53,17 @@
                                     readTVar,
                                     writeTVar)
 import Control.Monad.ST (ST)
-import Control.Monad.Cont (ContT)
-import Control.Monad.Error (ErrorT, Error)
-import Control.Monad.List (ListT)
-import Control.Monad.Reader (ReaderT)
-import Control.Monad.State.Lazy as Lazy (StateT)
-import Control.Monad.State.Strict as Strict (StateT)
-import Control.Monad.Trans (lift)
-import Control.Monad.Writer.Lazy as Lazy (WriterT)
-import Control.Monad.Writer.Strict as Strict (WriterT)
+import Control.Monad.Trans.Cont (ContT)
+import Control.Monad.Trans.Error (ErrorT, Error)
+import Control.Monad.Trans.Identity (IdentityT)
+import Control.Monad.Trans.List (ListT)
+import Control.Monad.Trans.Maybe (MaybeT)
+import Control.Monad.Trans.Reader (ReaderT)
+import Control.Monad.Trans.State.Lazy as Lazy (StateT)
+import Control.Monad.Trans.State.Strict as Strict (StateT)
+import Control.Monad.Trans.Writer.Lazy as Lazy (WriterT)
+import Control.Monad.Trans.Writer.Strict as Strict (WriterT)
+import Control.Monad.Trans.Class (lift)
 import Data.IORef (IORef,
                    atomicModifyIORef,
                    modifyIORef,
@@ -123,12 +125,24 @@
     writeRef  r x = lift $ writeRef  r x
     modifyRef r f = lift $ modifyRef r f
 
+instance MonadRef r m => MonadRef r (IdentityT m) where
+    newRef    r   = lift $ newRef    r
+    readRef   r   = lift $ readRef   r
+    writeRef  r x = lift $ writeRef  r x
+    modifyRef r f = lift $ modifyRef r f
+
 instance MonadRef r m => MonadRef r (ListT m) where
     newRef    r   = lift $ newRef    r
     readRef   r   = lift $ readRef   r
     writeRef  r x = lift $ writeRef  r x
     modifyRef r f = lift $ modifyRef r f
 
+instance MonadRef r m => MonadRef r (MaybeT m) where
+    newRef    r   = lift $ newRef    r
+    readRef   r   = lift $ readRef   r
+    writeRef  r x = lift $ writeRef  r x
+    modifyRef r f = lift $ modifyRef r f
+
 instance MonadRef r m => MonadRef r (ReaderT r' m) where
     newRef    r   = lift $ newRef    r
     readRef   r   = lift $ readRef   r
@@ -174,7 +188,13 @@
 instance (Error e, MonadAtomicRef r m) => MonadAtomicRef r (ErrorT e m) where
     atomicModifyRef r f = lift $ atomicModifyRef r f
 
+instance MonadAtomicRef r m => MonadAtomicRef r (IdentityT m) where
+    atomicModifyRef r f = lift $ atomicModifyRef r f
+
 instance MonadAtomicRef r m => MonadAtomicRef r (ListT m) where
+    atomicModifyRef r f = lift $ atomicModifyRef r f
+
+instance MonadAtomicRef r m => MonadAtomicRef r (MaybeT m) where
     atomicModifyRef r f = lift $ atomicModifyRef r f
 
 instance MonadAtomicRef r m => MonadAtomicRef r (ReaderT r' m) where
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2006-2010
+Copyright (c) 2006-2011
         The President and Fellows of Harvard College.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/ref-mtl.cabal b/ref-mtl.cabal
--- a/ref-mtl.cabal
+++ b/ref-mtl.cabal
@@ -1,15 +1,16 @@
 name:           ref-mtl
-version:        0.2
+version:        0.3
 cabal-version:  >= 1.6
 license:        BSD3
 license-file:   LICENSE
-copyright:      (c) 2006-2010 Harvard University
+copyright:      (c) 2006-2011 Harvard University
 author:         Geoffrey Mainland <mainland@eecs.harvard.edu>
 maintainer:     mainland@eecs.harvard.edu
 stability:      alpha
 homepage:       http://www.eecs.harvard.edu/~mainland/
 category:       Control
-synopsis:       A type class for monads with references using type families.
+synopsis:       A type class for monads with references compatible with the mtl2
+		library.
 description:    Contains a 'MonadRef' type class that abstracts over the
 		details of manipulating references, allowing one to write code
 		that can operate in either the ST monad or the IO monad.
@@ -22,8 +23,9 @@
 
   build-depends:
     base >= 4 && < 5,
-    stm >= 2.1 && < 2.2,
-    mtl >= 1.1 && < 1.2
+    stm >= 2.1 && < 2.3,
+    transformers >= 0.2 && < 0.3,
+    mtl >= 2.0 && < 2.1
 
 source-repository head
   type:     svn
