diff --git a/Control/Monad/Maybe.hs b/Control/Monad/Maybe.hs
--- a/Control/Monad/Maybe.hs
+++ b/Control/Monad/Maybe.hs
@@ -50,6 +50,14 @@
   return = lift . return
   x >>= f = MaybeT (runMaybeT x >>= maybe (return Nothing) (runMaybeT . f))
 
+instance (Monad m) => MonadPlus (MaybeT m) where
+  mzero = MaybeT (return Nothing)
+  mplus x y = MaybeT $ do v <- runMaybeT x
+                          case v of
+                            Nothing -> runMaybeT y
+                            Just _  -> return v
+
+
 instance MonadTrans MaybeT where
   lift x = MaybeT (liftM Just x)
 
diff --git a/MaybeT.cabal b/MaybeT.cabal
--- a/MaybeT.cabal
+++ b/MaybeT.cabal
@@ -1,5 +1,5 @@
 Name:                MaybeT
-Version:             0.1.1
+Version:             0.1.2
 Synopsis:            MaybeT monad transformer
 Description:         Support for computations with failures.
 License:             BSD3
@@ -8,6 +8,7 @@
 Author:              Eric Kidd <haskell@randomhacks.net>
 Maintainer:          Eric Kidd <haskell@randomhacks.net>
 Stability:           experimental
+Build-Type:          Simple
 Build-Depends:       base, mtl
 Exposed-modules:     Control.Monad.Maybe
-ghc-options:         -Wall -O
+ghc-options:         -Wall 
