diff -Naur logback-core.orig/src/main/java/ch/qos/logback/core/util/FileUtil.java logback-core/src/main/java/ch/qos/logback/core/util/FileUtil.java
--- logback-core.orig/src/main/java/ch/qos/logback/core/util/FileUtil.java	2010-12-08 11:53:00.000000000 +1300
+++ logback-core/src/main/java/ch/qos/logback/core/util/FileUtil.java	2010-12-08 12:10:40.000000000 +1300
@@ -39,10 +39,10 @@
     if (parent == null) {
       throw new IllegalStateException(file + " should not have a null parent");
     }
-    if (parent.exists()) {
-      throw new IllegalStateException(file + " should not have existing parent directory");
-    }
-    return parent.mkdirs();
+    // another thread may out race us and create the directory, so we don't really care about the return value
+    parent.mkdirs();
+    // however we do want to make sure it actually got created in the end
+    return parent.exists();
   }
 
 
