diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+## Path IO 1.0.1
+
+* Fixed bug in `copyDirRecur` for non-existing destination paths when
+  directory to copy does not contain sub-directories.
+
+* Made `copyDirRecur` try to copy permissions for destination directory too
+  (previously it only tried to copy them for sub-directories).
+
 ## Path IO 1.0.0
 
 * Changed signature of `getAppUserDataDir`, so it takes `String` as the
diff --git a/Path/IO.hs b/Path/IO.hs
--- a/Path/IO.hs
+++ b/Path/IO.hs
@@ -333,6 +333,8 @@
   bsrc  <- makeAbsolute src
   bdest <- makeAbsolute dest
   (dirs, files) <- listDirRecur bsrc
+  ensureDir bdest
+  ignoringIOErrors (copyPermissions bsrc bdest)
   mapM (swapParent bsrc bdest) dirs  >>= zipWithM_ copyDir  dirs
   mapM (swapParent bsrc bdest) files >>= zipWithM_ copyFile files
 
@@ -344,7 +346,7 @@
   -> Path Abs Dir      -- ^ Destination
   -> m ()
 copyDir src dest = do
-  createDirIfMissing True dest
+  ensureDir dest
   ignoringIOErrors (copyPermissions src dest)
 
 -- | A helper for 'copyDirRecur' that replaces given path prefix with
diff --git a/path-io.cabal b/path-io.cabal
--- a/path-io.cabal
+++ b/path-io.cabal
@@ -31,7 +31,7 @@
 -- POSSIBILITY OF SUCH DAMAGE.
 
 name:                 path-io
-version:              1.0.0
+version:              1.0.1
 cabal-version:        >= 1.10
 license:              BSD3
 license-file:         LICENSE.md
@@ -79,7 +79,7 @@
                     , exceptions   >= 0.8
                     , hspec        >= 2.0
                     , path         >= 0.5
-                    , path-io      >= 1.0.0
+                    , path-io      >= 1.0.1
   default-language:   Haskell2010
 
 source-repository head
