diff --git a/CHANGES.markdown b/CHANGES.markdown
new file mode 100644
--- /dev/null
+++ b/CHANGES.markdown
@@ -0,0 +1,4 @@
+0.1.9 (26 April 2013)
+---------------------
+
+  - add MonadRandom and MonadSplit instances for MaybeT
diff --git a/Control/Monad/Random.hs b/Control/Monad/Random.hs
--- a/Control/Monad/Random.hs
+++ b/Control/Monad/Random.hs
@@ -1,6 +1,7 @@
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE FlexibleInstances, UndecidableInstances #-}
+{-# LANGUAGE FlexibleInstances          #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE MultiParamTypeClasses      #-}
+{-# LANGUAGE UndecidableInstances       #-}
 {-# OPTIONS -fno-warn-orphans #-}
 
 {- |
@@ -40,17 +41,18 @@
     -- $RandExample
     ) where
 
-import System.Random
-import Control.Monad()
-import Control.Monad.Error
-import Control.Monad.Identity
-import Control.Monad.Random.Class
-import Control.Monad.Reader
-import Control.Monad.State
-import Control.Monad.Trans()
-import Control.Monad.Writer
-import Control.Arrow
-import Control.Applicative
+import           Control.Applicative
+import           Control.Arrow
+import           Control.Monad              ()
+import           Control.Monad.Error
+import           Control.Monad.Identity
+import           Control.Monad.Random.Class
+import           Control.Monad.Reader
+import           Control.Monad.State
+import           Control.Monad.Trans        ()
+import           Control.Monad.Trans.Maybe
+import           Control.Monad.Writer
+import           System.Random
 
 -- | A monad transformer which adds a random number generator to an
 -- existing monad.
@@ -144,6 +146,12 @@
     getRandoms = lift getRandoms
     getRandomRs = lift . getRandomRs
 
+instance (MonadRandom m) => MonadRandom (MaybeT m) where
+    getRandom = lift getRandom
+    getRandomR = lift . getRandomR
+    getRandoms = lift getRandoms
+    getRandomRs = lift . getRandomRs
+
 instance (MonadSplit g m) => MonadSplit g (StateT s m) where
     getSplit = lift getSplit
 
@@ -154,6 +162,9 @@
     getSplit = lift getSplit
 
 instance (Error e, MonadSplit g m) => MonadSplit g (ErrorT e m) where
+    getSplit = lift getSplit
+
+instance (MonadSplit g m) => MonadSplit g (MaybeT m) where
     getSplit = lift getSplit
 
 instance (MonadState s m, RandomGen g) => MonadState s (RandT g m) where
diff --git a/MonadRandom.cabal b/MonadRandom.cabal
--- a/MonadRandom.cabal
+++ b/MonadRandom.cabal
@@ -1,13 +1,20 @@
-Name:                MonadRandom
-Build-type:          Simple
-Version:             0.1.8
-Synopsis:            Random-number generation monad.
-Description:         Support for computations which consume random values.
-License:             OtherLicense
-License-file:        LICENSE
-Category:            Control
-Author:              Cale Gibbard and others
-Maintainer:          
-Stability:           experimental
-Build-Depends:       base >=2 && < 5, mtl, random
-Exposed-modules:     Control.Monad.Random.Class, Control.Monad.Random
+name:                MonadRandom
+version:             0.1.9
+synopsis:            Random-number generation monad.
+description:         Support for computations which consume random values.
+license:             OtherLicense
+license-file:        LICENSE
+author:              Cale Gibbard and others
+maintainer:          Brent Yorgey <byorgey@gmail.com>
+bug-reports:         https://github.com/byorgey/MonadRandom/issues
+category:            Control
+build-type:          Simple
+cabal-version:       >=1.8
+extra-source-files:  CHANGES.markdown
+source-repository head
+  type:     git
+  location: git://github.com/byorgey/MonadRandom.git
+
+library
+  exposed-modules:     Control.Monad.Random, Control.Monad.Random.Class
+  build-depends:       base >= 2 && < 5, transformers, mtl, random
