diff --git a/neil.cabal b/neil.cabal
--- a/neil.cabal
+++ b/neil.cabal
@@ -1,7 +1,7 @@
 cabal-version:      >= 1.6
 build-type:         Simple
 name:               neil
-version:            0.5
+version:            0.6
 license:            BSD3
 license-file:       LICENSE
 category:           Development
@@ -28,7 +28,7 @@
 
 executable neil
     hs-source-dirs:     src
-    build-depends:      base == 4.*, filepath, directory, time, process, extra >= 0.3,
+    build-depends:      base == 4.*, filepath, directory, time, process, extra >= 0.5,
                         containers, cmdargs
     if flag(small)
         cpp-options: -DSMALL
diff --git a/src/Cabal.hs b/src/Cabal.hs
--- a/src/Cabal.hs
+++ b/src/Cabal.hs
@@ -40,7 +40,7 @@
     files <- getDirectoryContents tdir
     let tarball = head $ [x | x <- files, ".tar.gz" `isSuffixOf` x]
     withCurrentDirectory tdir $ system_ $ "tar -xf " ++ tarball
-    lst <- getDirectoryContentsRecursive tdir
+    lst <- listFiles tdir
     let binary = [".png",".gz",".bat",".zip",".gif",""]
     bad <- flip filterM lst $ \file ->
         return (takeExtension file `notElem` binary) &&^
@@ -94,7 +94,7 @@
           "--contents-location=/package/" ++ name
     withTempDir $ \dir -> do
         system_ $ "cp -R dist/doc/html/" ++ name ++ " \"" ++ dir ++ "/" ++ name ++ "-" ++ ver ++ "-docs\""
-        files <- getDirectoryContentsRecursive dir
+        files <- listFiles dir
         forM_ files $ \file -> when (takeExtension file == ".html") $ do
             src <- readFileBinary' $ dir </> file
             src <- return $ filter (/= '\r') src -- filter out \r, due to CPP bugs
