Merge pull request #83 from francoishill/master

Add `FullBaseFsPath` utility method
diff --git a/copyOnWriteFs.go b/copyOnWriteFs.go
index 039ce53..fa0c936 100644
--- a/copyOnWriteFs.go
+++ b/copyOnWriteFs.go
@@ -1,11 +1,11 @@
 package afero
 
 import (
+	"fmt"
 	"os"
 	"path/filepath"
 	"syscall"
 	"time"
-	"fmt"
 )
 
 // The CopyOnWriteFs is a union filesystem: a read only base file system with
@@ -147,7 +147,7 @@
 
 		dir := filepath.Dir(name)
 		isaDir, err := IsDir(u.base, dir)
-		if err != nil {
+		if err != nil && !os.IsNotExist(err) {
 			return nil, err
 		}
 		if isaDir {
diff --git a/copyOnWriteFs_test.go b/copyOnWriteFs_test.go
new file mode 100644
index 0000000..2a00fab
--- /dev/null
+++ b/copyOnWriteFs_test.go
@@ -0,0 +1,23 @@
+package afero
+
+import "testing"
+
+func TestCopyOnWrite(t *testing.T) {
+	var fs Fs
+	var err error
+	base := NewOsFs()
+	roBase := NewReadOnlyFs(base)
+	ufs := NewCopyOnWriteFs(roBase, NewMemMapFs())
+	fs = ufs
+	err = fs.MkdirAll("nonexistent/directory/", 0744)
+	if err != nil {
+		t.Error(err)
+		return
+	}
+	_, err = fs.Create("nonexistent/directory/newfile")
+	if err != nil {
+		t.Error(err)
+		return
+	}
+
+}