diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.4.8
+
+* Drop system-filepath
+
 ## 1.4.7.2
 
 * Scaffolding updates, including fix for [#982](https://github.com/yesodweb/yesod/issues/982)
diff --git a/HsFile.hs b/HsFile.hs
--- a/HsFile.hs
+++ b/HsFile.hs
@@ -4,40 +4,19 @@
 import Text.ProjectTemplate (createTemplate)
 import Data.Conduit 
     ( ($$), (=$), ConduitM, awaitForever, yield, Source )
+import Data.Conduit.Filesystem (sourceDirectory)
 import Control.Monad.Trans.Resource (ResourceT, runResourceT)
 import qualified Data.Conduit.List as CL
-#if __GLASGOW_HASKELL__ >= 710
-import Prelude hiding (FilePath, traverse)
-#else
-import Prelude hiding (FilePath)
-#endif
-import Filesystem.Path ( FilePath )
-import Filesystem.Path.CurrentOS ( encodeString )
-import qualified Filesystem as F
 import qualified Data.ByteString as BS
 import Control.Monad.IO.Class (liftIO)
 
-traverse :: FilePath -> Source (ResourceT IO) FilePath
-traverse dir = do
-    liftIO (F.listDirectory dir) >>= mapM_ go
-  where
-    go fp = do
-        isFile' <- liftIO $ F.isFile fp
-        if isFile'
-            then yield fp
-            else do
-                isDir <- liftIO $ F.isDirectory fp
-                if isDir
-                    then traverse fp
-                    else return ()
-
 mkHsFile :: IO ()
-mkHsFile = runResourceT $ traverse "."
+mkHsFile = runResourceT $ sourceDirectory "."
         $$ readIt
         =$ createTemplate 
         =$ awaitForever (liftIO . BS.putStr)
 
 -- Reads a filepath from upstream and dumps a pair of (filepath, filecontents)
 readIt :: ConduitM FilePath (FilePath, ResourceT IO BS.ByteString) (ResourceT IO) ()
-readIt = CL.map $ \i -> (i, liftIO $ BS.readFile $ encodeString i)
+readIt = CL.map $ \i -> (i, liftIO $ BS.readFile i)
 
diff --git a/Keter.hs b/Keter.hs
--- a/Keter.hs
+++ b/Keter.hs
@@ -11,8 +11,8 @@
 import Control.Monad
 import System.Directory hiding (findFiles)
 import Data.Maybe (mapMaybe)
-import qualified Filesystem.Path.CurrentOS as F
-import qualified Filesystem as F
+import System.Directory (removeDirectoryRecursive)
+import System.FilePath ((</>))
 import qualified Codec.Archive.Tar as Tar
 import Control.Exception
 import qualified Data.ByteString.Lazy as L
@@ -60,7 +60,7 @@
             go ("exec", String s) = tellFile s
             go ("extraFiles", Array a) = Fold.mapM_ tellExtra a
             go (_, v') = findFiles v'
-            tellFile s = tell [F.collapse $ "config" F.</> F.fromText s]
+            tellFile s = tell ["config" </> T.unpack s]
             tellExtra (String s) = tellFile s
             tellExtra _          = error "extraFiles should be a flat array"
         findFiles (Array v) = Fold.mapM_ findFiles v
@@ -72,10 +72,10 @@
         run cabal ["configure"]
         run cabal ["build"]
 
-    _ <- try' $ F.removeTree "static/tmp"
+    _ <- try' $ removeDirectoryRecursive "static/tmp"
 
     archive <- Tar.pack "" $
-        "config" : "static" : map F.encodeString bundleFiles
+        "config" : "static" : bundleFiles
     let fp = T.unpack project ++ ".keter"
     L.writeFile fp $ compress $ Tar.write archive
 
diff --git a/yesod-bin.cabal b/yesod-bin.cabal
--- a/yesod-bin.cabal
+++ b/yesod-bin.cabal
@@ -1,5 +1,5 @@
 name:            yesod-bin
-version:         1.4.7.2
+version:         1.4.8
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -63,8 +63,6 @@
                      , process
                      , zlib               >= 0.5
                      , tar                >= 0.4          && < 0.5
-                     , system-filepath    >= 0.4          && < 0.5
-                     , system-fileio      >= 0.3          && < 0.4
                      , unordered-containers
                      , yaml               >= 0.8          && < 0.9
                      , optparse-applicative >= 0.11
