diff --git a/Scaffolding/Scaffolder.hs b/Scaffolding/Scaffolder.hs
--- a/Scaffolding/Scaffolder.hs
+++ b/Scaffolding/Scaffolder.hs
@@ -118,6 +118,11 @@
             then "                 , persistent-mongoDB >= 0.6.1 && < 0.7\n                 , mongoDB >= 1.1\n                 , bson >= 0.1.5\n"
             else "                 , persistent-" ++ backendLower ++ " >= 0.6 && < 0.7"
 
+        monadControlVersion =
+          if backend == MongoDB
+              then "== 0.2.*"
+              else "== 0.3.*"
+
 
     let fst3 (x, _, _) = x
     year <- show . fst3 . toGregorian . utctDay <$> getCurrentTime
diff --git a/Yesod.hs b/Yesod.hs
--- a/Yesod.hs
+++ b/Yesod.hs
@@ -15,7 +15,11 @@
     , Application
     , lift
     , liftIO
+#if MIN_VERSION_monad_control(0, 3, 0)
+    , MonadBaseControl
+#else
     , MonadControlIO
+#endif
       -- * Utilities
     , showIntegral
     , readIntegral
@@ -50,7 +54,11 @@
 import Network.Wai.Middleware.Debug
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.IO.Class (liftIO)
+#if MIN_VERSION_monad_control(0, 3, 0)
+import Control.Monad.Trans.Control (MonadBaseControl)
+#else
 import Control.Monad.IO.Control (MonadControlIO)
+#endif
 
 import Network.Wai.Handler.Warp (run)
 import System.IO (stderr, hPutStrLn)
diff --git a/scaffold/project.cabal.cg b/scaffold/project.cabal.cg
--- a/scaffold/project.cabal.cg
+++ b/scaffold/project.cabal.cg
@@ -46,6 +46,7 @@
                 TypeFamilies
                 GADTs
                 GeneralizedNewtypeDeriving
+                FlexibleContexts
 
 executable         ~project~
     if flag(devel)
@@ -69,9 +70,10 @@
                 TypeFamilies
                 GADTs
                 GeneralizedNewtypeDeriving
+                FlexibleContexts
 
     build-depends: base                          >= 4          && < 5
-                 , yesod                         >= 0.9        && < 0.10
+                 , yesod                         >= 0.9.3.4    && < 0.10
                  , yesod-core                    >= 0.9.3      && < 0.10
                  , yesod-auth                    >= 0.7.3      && < 0.8
                  , yesod-static                  >= 0.3.1      && < 0.4
@@ -89,3 +91,4 @@
                  , shakespeare-js                >= 0.10       && < 0.11
                  , shakespeare-text              >= 0.10       && < 0.11
                  , hjsmin                        >= 0.0.14     && < 0.1
+                 , monad-control                 ~monadControlVersion~
diff --git a/scaffold/tiny/project.cabal.cg b/scaffold/tiny/project.cabal.cg
--- a/scaffold/tiny/project.cabal.cg
+++ b/scaffold/tiny/project.cabal.cg
@@ -76,4 +76,5 @@
                  , shakespeare-text              >= 0.10       && < 0.11
                  , wai                           >= 0.4.2      && < 0.5
                  , transformers                  >= 0.2        && < 0.3
+                 , monad-control                 >= 0.3        && < 0.4
 
diff --git a/yesod.cabal b/yesod.cabal
--- a/yesod.cabal
+++ b/yesod.cabal
@@ -1,5 +1,5 @@
 name:            yesod
-version:         0.9.3.3
+version:         0.9.3.4
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -76,7 +76,7 @@
                    , yesod-json                >= 0.2.2    && < 0.3
                    , yesod-persistent          >= 0.2      && < 0.3
                    , yesod-form                >= 0.3      && < 0.4
-                   , monad-control             >= 0.2      && < 0.3
+                   , monad-control             >= 0.2      && < 0.4
                    , transformers              >= 0.2.2    && < 0.3
                    , wai                       >= 0.4      && < 0.5
                    , wai-extra                 >= 0.4.1    && < 0.5
