diff --git a/FileManipCompat.cabal b/FileManipCompat.cabal
--- a/FileManipCompat.cabal
+++ b/FileManipCompat.cabal
@@ -1,5 +1,5 @@
 Name:               FileManipCompat
-Version:            0.15
+Version:            0.16
 License:            BSD3
 License-File:       LICENSE
 Author:             Bryan O'Sullivan <bos@serpentine.com>
@@ -17,7 +17,10 @@
   Description:     Choose the new, split-up base package.
 
 Library
-  Build-Depends: base >= 3 && < 4, bytestring, directory, filepath, mtl, unix-compat
+  if flag(splitBase)
+    Build-Depends: base <5, bytestring, directory, filepath, mtl, unix-compat
+  else
+    Build-Depends: base <4, filepath, mtl, unix-compat
 
   GHC-Options:    -Wall 
   Exposed-Modules:
diff --git a/System/FilePath/FindCompat.hs b/System/FilePath/FindCompat.hs
--- a/System/FilePath/FindCompat.hs
+++ b/System/FilePath/FindCompat.hs
@@ -111,7 +111,9 @@
     ) where
 
 import Control.Monad (foldM, forM, liftM, liftM2)
-import Control.Monad.State (State(..), evalState)
+import Control.Monad
+import Control.Monad.State
+import Control.Monad.Identity
 import Data.Bits (Bits, (.&.))
 import Data.List (sort)
 import System.Directory (getDirectoryContents)
@@ -172,7 +174,7 @@
 evalFI m p d s = evalClause m (mkFI p d s)
 
 mkFindClause :: (FileInfo -> (a, FileInfo)) -> FindClause a
-mkFindClause = FC . State
+mkFindClause f = FC . StateT $ return . f
 
 -- | Return the current 'FileInfo'.
 fileInfo :: FindClause FileInfo
