diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.5.5
+
+* Update `readProcessWithExitCode` function
+
 0.5.4
 
 * add `Process` module
diff --git a/filepather.cabal b/filepather.cabal
--- a/filepather.cabal
+++ b/filepather.cabal
@@ -1,5 +1,5 @@
 name:                 filepather
-version:              0.5.4
+version:              0.5.5
 synopsis:             Functions on System.FilePath
 description:
   Functions over @System.FilePath@ including a find function for recursing down directories.
@@ -37,7 +37,7 @@
                        , containers           >= 0.6.4.1 && < 0.7
                        , contravariant        >= 1.5.5 && < 2
                        , directory            >= 1.3.7.1 && < 2
-                       , exitcode             >= 0.1.0.7 && < 2
+                       , exitcode             >= 0.1.0.9 && < 2
                        , filepath             >= 1.4.2.1 && < 2
                        , lens                 >= 5.2.3 && < 6
                        , mmorph               >= 1.2.0 && < 2
diff --git a/src/System/FilePath/FilePather/Process.hs b/src/System/FilePath/FilePather/Process.hs
--- a/src/System/FilePath/FilePather/Process.hs
+++ b/src/System/FilePath/FilePather/Process.hs
@@ -10,13 +10,19 @@
 , readProcessWithExitCode
 ) where
 
-import Control.Exitcode as E
-import Control.Exception
-import Control.Monad.Reader.Class
+import Control.Exitcode as E ( ExitcodeT )
+import Control.Exception ( Exception )
+import Control.Monad.Reader.Class ( MonadReader(reader) )
+import Control.Monad.Except ( ExceptT )
 import Control.Process( ProcessHandle, CreateProcess )
 import qualified Control.Process as P
+import Data.String ( String )
 import System.FilePath.FilePather.ReadFilePath
-import Prelude
+    ( ReadFilePath,
+      ReadFilePathT,
+      successReadFilePath,
+      tryReadFilePath )
+import System.IO ( IO )
 
 spawnProcess ::
   Exception e =>
@@ -53,8 +59,9 @@
   tryReadFilePath (`P.callProcess` s)
 
 readProcessWithExitCode ::
+  Exception e' =>
   [String]
   -> String
-  -> ReadFilePathT e (ExitcodeT IO (String, String)) (String, String)
+  -> ReadFilePathT e (ExitcodeT (ExceptT e' IO) (String, String)) (String, String)
 readProcessWithExitCode as a =
   successReadFilePath (\p -> P.readProcessWithExitCode p as a)
