diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.6.0
+
+* Upgrade to yesod-core 1.6.0
+
 ## 1.5.3.1
 
 * Switch to cryptonite
diff --git a/Yesod/EmbeddedStatic.hs b/Yesod/EmbeddedStatic.hs
--- a/Yesod/EmbeddedStatic.hs
+++ b/Yesod/EmbeddedStatic.hs
@@ -57,10 +57,7 @@
 import Network.Wai (responseLBS, pathInfo)
 import Network.Wai.Application.Static (staticApp)
 import System.IO.Unsafe (unsafePerformIO)
-import Yesod.Core
-          ( HandlerT
-          , YesodSubDispatch(..)
-          )
+import Yesod.Core (YesodSubDispatch(..))
 import Yesod.Core.Types
           ( YesodSubRunnerEnv(..)
           , YesodRunnerEnv(..)
@@ -81,7 +78,7 @@
 embeddedResourceR :: [T.Text] -> [(T.Text, T.Text)] -> Route EmbeddedStatic
 embeddedResourceR = EmbeddedResourceR
 
-instance YesodSubDispatch EmbeddedStatic (HandlerT master IO) where
+instance YesodSubDispatch EmbeddedStatic master where
     yesodSubDispatch YesodSubRunnerEnv {..} req = resp
         where
             master = yreSite ysreParentEnv
diff --git a/Yesod/EmbeddedStatic/Generators.hs b/Yesod/EmbeddedStatic/Generators.hs
--- a/Yesod/EmbeddedStatic/Generators.hs
+++ b/Yesod/EmbeddedStatic/Generators.hs
@@ -24,9 +24,9 @@
 
   -- * Util
   , pathToName
-  
+
   -- * Custom Generators
-  
+
   -- $example
 ) where
 
@@ -34,7 +34,6 @@
 import Control.Exception (try, SomeException)
 import Control.Monad (forM, when)
 import Data.Char (isDigit, isLower)
-import Data.Conduit (($$))
 import Data.Default (def)
 import Data.Maybe (isNothing)
 import Language.Haskell.TH
@@ -44,8 +43,7 @@
 import Text.Jasmine (minifym)
 import qualified Data.ByteString as BS
 import qualified Data.ByteString.Lazy as BL
-import qualified Data.Conduit.List as C
-import Data.Conduit.Binary (sourceHandle)
+import Conduit
 import qualified Data.Text as T
 import qualified System.Process as Proc
 import System.Exit (ExitCode (ExitSuccess))
@@ -208,13 +206,13 @@
                 }
     (Just hin, Just hout, _, ph) <- Proc.createProcess p
     (compressed, (), code) <- runConcurrently $ (,,)
-        A.<$> Concurrently (sourceHandle hout $$ C.consume)
+        A.<$> Concurrently (runConduit $ sourceHandle hout .| sinkLazy)
         A.<*> Concurrently (BL.hPut hin ct >> hClose hin)
         A.<*> Concurrently (Proc.waitForProcess ph)
     if code == ExitSuccess
         then do
             putStrLn $ "Compressed successfully with " ++ f
-            return $ BL.fromChunks compressed
+            return compressed
         else error $ "compressTool: compression failed with " ++ f
 
 
diff --git a/Yesod/EmbeddedStatic/Internal.hs b/Yesod/EmbeddedStatic/Internal.hs
--- a/Yesod/EmbeddedStatic/Internal.hs
+++ b/Yesod/EmbeddedStatic/Internal.hs
@@ -25,7 +25,7 @@
 import Network.Wai.Application.Static (defaultWebAppSettings, staticApp)
 import WaiAppStatic.Types
 import Yesod.Core
-          ( HandlerT
+          ( HandlerFor
           , ParseRoute(..)
           , RenderRoute(..)
           , getYesod
@@ -136,7 +136,7 @@
 
 -- | The type of 'addStaticContent'
 type AddStaticContent site = T.Text -> T.Text -> BL.ByteString
-                          -> HandlerT site IO (Maybe (Either T.Text (Route site, [(T.Text, T.Text)])))
+                          -> HandlerFor site (Maybe (Either T.Text (Route site, [(T.Text, T.Text)])))
 
 -- | Helper for embedStaticContent and embedLicensedStaticContent.
 staticContentHelper :: (site -> EmbeddedStatic)
diff --git a/Yesod/Static.hs b/Yesod/Static.hs
--- a/Yesod/Static.hs
+++ b/Yesod/Static.hs
@@ -68,7 +68,6 @@
 import Control.Monad
 import Data.FileEmbed (embedDir)
 
-import Control.Monad.Trans.Resource (runResourceT)
 import Yesod.Core
 import Yesod.Core.Types
 
@@ -78,7 +77,6 @@
 
 import Crypto.Hash.Conduit (hashFile, sinkHash)
 import Crypto.Hash (MD5, Digest)
-import Control.Monad.Catch (MonadThrow)
 import Control.Monad.Trans.State
 
 import qualified Data.ByteArray as ByteArray
@@ -94,11 +92,7 @@
 import qualified Data.ByteString as S
 import System.PosixCompat.Files (getFileStatus, modificationTime)
 import System.Posix.Types (EpochTime)
-import Data.Conduit
-import Data.Conduit.List (sourceList, consume)
-import Data.Conduit.Binary (sourceFile)
-import qualified Data.Conduit.Text as CT
-import Data.Functor.Identity (runIdentity)
+import Conduit
 import System.FilePath ((</>), (<.>), takeDirectory)
 import qualified System.FilePath as F
 import qualified Data.Text.Lazy as TL
@@ -175,12 +169,10 @@
 instance ParseRoute Static where
     parseRoute (x, y) = Just $ StaticRoute x y
 
-instance (MonadThrow m, MonadIO m, MonadBaseControl IO m)
-  => YesodSubDispatch Static (HandlerT master m) where
+instance YesodSubDispatch Static master where
     yesodSubDispatch YesodSubRunnerEnv {..} req =
-        ysreParentRunner base ysreParentEnv (fmap ysreToParentRoute route) req
+        ysreParentRunner handlert ysreParentEnv (fmap ysreToParentRoute route) req
       where
-        base = stripHandlerT handlert ysreGetSub ysreToParentRoute route
         route = Just $ StaticRoute (pathInfo req) []
 
         Static set = ysreGetSub $ yreSite $ ysreParentEnv
@@ -425,8 +417,8 @@
 base64md5 :: L.ByteString -> String
 base64md5 lbs =
             base64 $ encode
-          $ runIdentity
-          $ sourceList (L.toChunks lbs) $$ sinkHash
+          $ runConduitPure
+          $ Conduit.sourceLazy lbs .| sinkHash
   where
     encode d = ByteArray.convert (d :: Digest MD5)
 
@@ -461,8 +453,11 @@
                 -> [Route Static] -- ^ files to combine
                 -> Q Exp
 combineStatics' combineType CombineSettings {..} routes = do
-    texts <- qRunIO $ runResourceT $ mapM_ yield fps $$ awaitForever readUTFFile =$ consume
-    ltext <- qRunIO $ preProcess $ TL.fromChunks texts
+    texts <- qRunIO $ runConduitRes
+                    $ yieldMany fps
+                   .| awaitForever readUTFFile
+                   .| sinkLazy
+    ltext <- qRunIO $ preProcess texts
     bs    <- qRunIO $ postProcess fps $ TLE.encodeUtf8 ltext
     let hash' = base64md5 bs
         suffix = csCombinedFolder </> hash' <.> extension
@@ -476,7 +471,7 @@
     fps :: [FilePath]
     fps = map toFP routes
     toFP (StaticRoute pieces _) = csStaticDir </> F.joinPath (map T.unpack pieces)
-    readUTFFile fp = sourceFile fp =$= CT.decode CT.utf8
+    readUTFFile fp = sourceFile fp .| decodeUtf8C
     postProcess =
         case combineType of
             JS -> csJsPostProcess
diff --git a/yesod-static.cabal b/yesod-static.cabal
--- a/yesod-static.cabal
+++ b/yesod-static.cabal
@@ -1,5 +1,5 @@
 name:            yesod-static
-version:         1.5.3.1
+version:         1.6.0
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -29,7 +29,7 @@
     build-depends:   base                  >= 4        && < 5
                    , containers            >= 0.2
                    , old-time              >= 1.0
-                   , yesod-core            >= 1.4      && < 1.5
+                   , yesod-core            >= 1.6      && < 1.7
                    , base64-bytestring     >= 0.1.0.1
                    , byteable              >= 0.1
                    , bytestring            >= 0.9.1.4
@@ -42,8 +42,7 @@
                    , file-embed            >= 0.0.4.1  && < 0.5
                    , http-types            >= 0.7
                    , unix-compat           >= 0.2
-                   , conduit               >= 0.5
-                   , conduit-extra
+                   , conduit               >= 1.3
                    , cryptonite-conduit    >= 0.1
                    , cryptonite            >= 0.11
                    , memory
@@ -92,7 +91,7 @@
                      YesodStaticTest
     build-depends:   base
                    , hspec >= 1.3
-                   , yesod-test >= 1.4
+                   , yesod-test >= 1.6
                    , wai-extra
                    , HUnit
 
@@ -124,7 +123,6 @@
                    , unordered-containers
                    , async
                    , process
-                   , conduit-extra
                    , exceptions
 
     ghc-options:     -Wall -threaded
