diff --git a/README.md b/README.md
index edf0999..da4c956 100644
--- a/README.md
+++ b/README.md
@@ -357,8 +357,6 @@
 permitted. If a file is present in the base layer and the overlay, only the
 overlay will be removed/renamed.
 
-The writable overlay layer is currently limited to MemMapFs.
-
 ```go
 	base := afero.NewOsFs()
 	roBase := afero.NewReadOnlyFs(base)
diff --git a/copyOnWriteFs.go b/copyOnWriteFs.go
index 9f5a2ef..e0d7870 100644
--- a/copyOnWriteFs.go
+++ b/copyOnWriteFs.go
@@ -2,6 +2,7 @@
 
 import (
 	"os"
+	"path/filepath"
 	"syscall"
 	"time"
 	"fmt"
@@ -12,10 +13,6 @@
 // be made in the overlay: Changing an existing file in the base layer which
 // is not present in the overlay will copy the file to the overlay ("changing"
 // includes also calls to e.g. Chtimes() and Chmod()).
-// The overlay is currently limited to MemMapFs:
-//  - missing MkdirAll() calls in the code below, MemMapFs creates them
-//    implicitly (or better: records the full path and afero.Readdir()
-//    can handle this).
 //
 // Reading directories is currently only supported via Open(), not OpenFile().
 type CopyOnWriteFs struct {
@@ -132,8 +129,30 @@
 			if err = u.copyToLayer(name); err != nil {
 				return nil, err
 			}
+			return u.layer.OpenFile(name, flag, perm)
 		}
-		return u.layer.OpenFile(name, flag, perm)
+
+		dir := filepath.Dir(name)
+		isaDir, err := IsDir(u.base, dir)
+		if err != nil {
+			return nil, err
+		}
+		if isaDir {
+			if err = u.layer.MkdirAll(dir, 0777); err != nil {
+				return nil, err
+			}
+			return u.layer.OpenFile(name, flag, perm)
+		}
+
+		isaDir, err = IsDir(u.layer, dir)
+		if err != nil {
+			return nil, err
+		}
+		if isaDir {
+			return u.layer.OpenFile(name, flag, perm)
+		}
+
+		return nil, &os.PathError{Op: "open", Path: name, Err: syscall.ENOTDIR} // ...or os.ErrNotExist?
 	}
 	if b {
 		return u.base.OpenFile(name, flag, perm)
@@ -217,11 +236,5 @@
 }
 
 func (u *CopyOnWriteFs) Create(name string) (File, error) {
-	b, err := u.isBaseFile(name)
-	if err == nil && b {
-		if err = u.copyToLayer(name); err != nil {
-			return nil, err
-		}
-	}
-	return u.layer.Create(name)
+	return u.OpenFile(name, os.O_TRUNC|os.O_RDWR, 0666)
 }
