diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+0.3.19
+
+* Instances for `MaybeT`
+
 0.3.18
 
 * `ShortByteString` instances for all supported `bytestring`
diff --git a/quickcheck-instances.cabal b/quickcheck-instances.cabal
--- a/quickcheck-instances.cabal
+++ b/quickcheck-instances.cabal
@@ -1,5 +1,6 @@
 Name:                quickcheck-instances
-Version:             0.3.18
+Version:             0.3.19
+
 Synopsis:            Common quickcheck instances
 Description:         QuickCheck instances.
                      .
@@ -33,7 +34,8 @@
   GHC==7.10.3,
   GHC==8.0.2,
   GHC==8.2.2,
-  GHC==8.4.1
+  GHC==8.4.3,
+  GHC==8.6.1
 
 Source-repository head
   type:     git
@@ -64,14 +66,14 @@
                        Test.QuickCheck.Instances.Vector
   Hs-Source-Dirs:      src
   Build-depends:
-    base       >=4.5  && <4.12,
-    QuickCheck >=2.10 && <2.12,
+    base       >=4.5  && <4.13,
+    QuickCheck >=2.10 && <2.13,
 
     array                >=0.4.0.0 && <0.6,
-    base-compat          >=0.9.3   && <0.10,
+    base-compat          >=0.9.3   && <0.11,
     bytestring           >=0.9.2.1 && <0.11,
     case-insensitive     >=1.2.0.4 && <1.3,
-    containers           >=0.4.2.1 && <0.6,
+    containers           >=0.4.2.1 && <0.7,
     hashable             >=1.2.5.0 && <1.3,
     old-time             >=1.1.0.0 && <1.2,
     scientific           >=0.2.0.0 && <0.4,
diff --git a/src/Test/QuickCheck/Instances/Transformer.hs b/src/Test/QuickCheck/Instances/Transformer.hs
--- a/src/Test/QuickCheck/Instances/Transformer.hs
+++ b/src/Test/QuickCheck/Instances/Transformer.hs
@@ -6,6 +6,7 @@
 import Prelude ()
 import Prelude.Compat
 
+import Control.Monad.Trans.Maybe (MaybeT(..))
 import Data.Functor.Sum (Sum (..))
 
 import Test.QuickCheck
@@ -15,6 +16,14 @@
 -------------------------------------------------------------------------------
 
 -- TODO: CoArbitrary and Function, needs Coarbitrary1 and Function1
+
+instance (Arbitrary1 m) => Arbitrary1 (MaybeT m) where
+  liftArbitrary = fmap MaybeT . liftArbitrary . liftArbitrary
+  liftShrink shr (MaybeT m) = map MaybeT (liftShrink (liftShrink shr) m)
+
+instance (Arbitrary1 m, Arbitrary a) => Arbitrary (MaybeT m a) where
+  arbitrary = arbitrary1
+  shrink = shrink1
 
 instance (Arbitrary1 f, Arbitrary1 g) => Arbitrary1 (Sum f g) where
   liftArbitrary arb = oneof [fmap InL (liftArbitrary arb), fmap InR (liftArbitrary arb)]
