diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 See also http://pvp.haskell.org/faq
 
+#### 0.1.6.4
+
+* Depend on `directory` rather than `system-fileio` ([PR #18](https://github.com/haskell-hvr/http-io-streams/pull/18)).
+
+Tested with GHC 8.0 - 9.8.
+
 #### 0.1.6.3
 
 * Test-suite: add dependency `attoparsec-aeson` for `aeson-2.2`.
diff --git a/http-io-streams.cabal b/http-io-streams.cabal
--- a/http-io-streams.cabal
+++ b/http-io-streams.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                http-io-streams
-version:             0.1.6.3
+version:             0.1.6.4
 
 synopsis:            HTTP and WebSocket client based on io-streams
 description:
@@ -32,8 +32,8 @@
 
 tested-with:
   GHC == 9.8.1
-  GHC == 9.6.3
-  GHC == 9.4.7
+  GHC == 9.6.4
+  GHC == 9.4.8
   GHC == 9.2.8
   GHC == 9.0.2
   GHC == 8.10.7
@@ -168,5 +168,5 @@
     , snap-core
     , snap-server
     , system-filepath
-    , system-fileio
+    , directory
     , unordered-containers
diff --git a/tests/MockServer.hs b/tests/MockServer.hs
--- a/tests/MockServer.hs
+++ b/tests/MockServer.hs
@@ -29,8 +29,7 @@
 import qualified Data.ByteString.Char8 as S
 import qualified Data.ByteString.Lazy.Char8 as L
 import Data.Maybe (fromMaybe)
-import Filesystem (getSize)
-import Filesystem.Path.CurrentOS (decodeString)
+import System.Directory (getFileSize)
 import Snap.Core
 import Snap.Http.Server
 import Snap.Util.FileServe
@@ -112,7 +111,7 @@
     let f' = S.concat ["tests/", i']
     let f = S.unpack f'
 
-    l <- liftIO $ getSize $ decodeString f
+    l <- liftIO $ getFileSize f
 
     let t = fileType defaultMimeTypes f
     modifyResponse $ setContentType t
