diff --git a/dfsbuild.cabal b/dfsbuild.cabal
--- a/dfsbuild.cabal
+++ b/dfsbuild.cabal
@@ -1,5 +1,5 @@
 Name: dfsbuild
-Version: 0.99.4
+Version: 1.0.1
 license-file: COPYRIGHT
 extra-source-files: COPYING, CREDITS
 License: GPL
@@ -31,8 +31,9 @@
  .
  On PowerPC, dfsbuild supports the yaboot bootloader.
 Stability: Alpha
-Copyright: Copyright (c) 2006 John Goerzen
-Build-Depends: base, network, unix, parsec, MissingH>=0.18.0, regex-compat, hslogger, FilePath, ConfigFile
+Copyright: Copyright (c) 2006-2007 John Goerzen
+Build-Depends: base, network, unix, parsec, MissingH>=0.18.0,
+ regex-compat, hslogger, filepath, ConfigFile, HSH>=1.2.0
 
 Executable: dfsbuild
 Main-Is: dfsbuild.hs
diff --git a/dfsbuild.hs b/dfsbuild.hs
--- a/dfsbuild.hs
+++ b/dfsbuild.hs
@@ -1,5 +1,5 @@
 {- dfsbuild: CD image builder
-Copyright (c) 2006 John Goerzen
+Copyright (c) 2006-2007 John Goerzen
 Please see COPYRIGHT for more details
 -}
 
@@ -19,7 +19,8 @@
 import System.Console.GetOpt
 import System.Path
 import Actions.ConfigFiles
-import qualified Actions(run)
+import qualified Actions(runIt)
+import HSH.ShellEquivs
   
 procCmdLine :: IO (Bool, Bool, ConfigParser, String, String)
 procCmdLine =
@@ -36,7 +37,7 @@
        let wdir = forceMaybeMsg "working dir" $ lookup "w" args
        dm $ "Working dir is " ++ wdir
        dm $ "Working dir created"
-       cwd <- getWorkingDirectory
+       cwd <- pwd
        dm $ "Initial cwd is " ++ cwd
        da <- getDefaultArch
        let defaultArch = case lookup "a" args of
@@ -75,12 +76,10 @@
        checkUID
 
        -- If this is a fresh run, need to create that work dir.
-       unless (resumemode) (createDirectory workdir 0o755)
-       changeWorkingDirectory workdir
+       unless (resumemode) (mkdir workdir 0o755)
+       cd workdir
        im $ "Using working directory " ++ workdir
-       let cplibdir = forceMaybe $ 
-                      absNormPath workdir 
-                                      (forceEither $ get incp da "libdir")
+       cplibdir <- abspath (forceEither $ get incp da "libdir")
        im $ "Using library directory " ++ cplibdir
        cdmarker <- if resumemode
                       then readFile (workdir ++ "/target/opt/dfsruntime/marker")
@@ -97,7 +96,7 @@
        -- Fresh run: initialize the state file.
        unless (resumemode) (saveState env Fresh)
 
-       Actions.run env
+       Actions.runIt env
 
 checkUID =
     do uid <- getEffectiveUserID
