diff --git a/elm-init.cabal b/elm-init.cabal
--- a/elm-init.cabal
+++ b/elm-init.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                elm-init
-version:             1.0.3
+version:             1.0.4
 synopsis:            Set up basic structure for an elm project
 description:
   Initialize a new empty elm project with some basic scaffolding according to 'https://github.com/evancz/elm-architecture-tutorial'.
@@ -45,7 +45,7 @@
   build-depends:
       base >=4.6 && <5.0,
       filepath >= 1.4,
-      directory >= 1.2.3,
+      directory >= 1.2,
       file-embed >= 0.0.8,
       bytestring >= 0.10,
       aeson >= 0.8,
diff --git a/src/ElmInit/Util.hs b/src/ElmInit/Util.hs
--- a/src/ElmInit/Util.hs
+++ b/src/ElmInit/Util.hs
@@ -4,14 +4,17 @@
   , getOr
   , enumerate
   , bool
+  , withCurrentDirectory
   ) where
 
 
 import           Control.Applicative         ((<$>))
 import           Control.Applicative.Unicode
-import           Control.Exception           (IOException, catch)
+import           Control.Exception           (IOException, catch, bracket)
 import           Prelude.Unicode
-import           System.Directory            (doesDirectoryExist, doesFileExist)
+import           System.Directory            (doesDirectoryExist, doesFileExist,
+                                              getCurrentDirectory,
+                                              setCurrentDirectory)
 
 
 bool :: a -> a -> Bool -> a
@@ -38,3 +41,11 @@
 
 enumerate ∷ Int → [a] → [(Int,a)]
 enumerate from l = zip [from..(length l)] l
+
+
+-- Taken from the directory package
+withCurrentDirectory :: FilePath -> IO a -> IO a
+withCurrentDirectory dir action =
+  bracket getCurrentDirectory setCurrentDirectory $ \ _ -> do
+    setCurrentDirectory dir
+    action
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -26,13 +26,12 @@
                                               UserDecisions (..), askChoices,
                                               askChoicesWithOther, exists,
                                               makePackage, verifyElmVersion)
-import           ElmInit.Util                (bool)
+import           ElmInit.Util                (bool, withCurrentDirectory)
 import           Prelude                     hiding (putStrLn)
 import           Prelude.Unicode
 import           System.Directory            (createDirectoryIfMissing,
                                               doesDirectoryExist, doesFileExist,
-                                              getCurrentDirectory, makeAbsolute,
-                                              withCurrentDirectory)
+                                              getCurrentDirectory, makeAbsolute)
 import           System.Environment          (getArgs)
 import           System.FilePath             (isValid, takeBaseName,
                                               takeExtension, (</>), takeDirectory)
