diff --git a/base/sourceTest/java/ch/systemsx/cisd/base/tests/AbstractFileSystemTestCase.java b/base/sourceTest/java/ch/systemsx/cisd/base/tests/AbstractFileSystemTestCase.java
index c4f40b0c92266d900bf7f2786fa7773c0240217f..9cc75e198ed379a4e15b091a6145302a63fac3e9 100644
--- a/base/sourceTest/java/ch/systemsx/cisd/base/tests/AbstractFileSystemTestCase.java
+++ b/base/sourceTest/java/ch/systemsx/cisd/base/tests/AbstractFileSystemTestCase.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.base.tests;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Arrays;
 
 import org.apache.commons.io.FileUtils;
 import org.testng.AssertJUnit;
@@ -68,8 +69,13 @@ public abstract class AbstractFileSystemTestCase extends AssertJUnit
     public void setUp() throws IOException
     {
         deleteDirectory(workingDirectory);
-        workingDirectory.mkdir();
-        assertTrue(workingDirectory.isDirectory() && workingDirectory.listFiles().length == 0);
+        workingDirectory.mkdirs();
+        assertEquals(true, workingDirectory.isDirectory());
+        File[] files = workingDirectory.listFiles();
+        if (files != null)
+        {
+            assertEquals("Unexpected files " + Arrays.asList(files), 0, files.length);
+        }
     }
 
     private void deleteDirectory(File dir)
@@ -81,6 +87,14 @@ public abstract class AbstractFileSystemTestCase extends AssertJUnit
         {
             System.err.println("Could not delete the directory " + dir.getPath() + " because: "
                     + e.getMessage());
+            try
+            {
+                FileUtils.deleteDirectory(dir);
+            } catch (IOException e2)
+            {
+                System.err.println("Could not delete the directory " + dir.getPath()
+                        + " in second try because: " + e2.getMessage());
+            }
         }
     }