diff --git a/weed/filer2/filer.go b/weed/filer2/filer.go
index 2586c664c..d722e60ac 100644
--- a/weed/filer2/filer.go
+++ b/weed/filer2/filer.go
@@ -88,11 +88,13 @@ func (f *Filer) CreateEntry(entry *Entry) error {
 			glog.V(2).Infof("create directory: %s %v", dirPath, dirEntry.Mode)
 			mkdirErr := f.store.InsertEntry(dirEntry)
 			if mkdirErr != nil {
-				return fmt.Errorf("mkdir %s: %v", dirPath, mkdirErr)
+				if _, err := f.FindEntry(FullPath(dirPath)); err == ErrNotFound {
+					return fmt.Errorf("mkdir %s: %v", dirPath, mkdirErr)
+				}
+			} else {
+				f.NotifyUpdateEvent(nil, dirEntry, false)
 			}
 
-			f.NotifyUpdateEvent(nil, dirEntry, false)
-
 		} else if !dirEntry.IsDirectory() {
 			return fmt.Errorf("%s is a file", dirPath)
 		}