diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/HierarchicalStorageUpdater.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/HierarchicalStorageUpdater.java
index 62668c0872e58da8c5125b18fd819aa06ea11c8b..c7c26d0389e815418692b39b5f58dfe44d051ef7 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/HierarchicalStorageUpdater.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/HierarchicalStorageUpdater.java
@@ -173,11 +173,23 @@ public class HierarchicalStorageUpdater implements IMaintenanceTask
 
     private static void deleteWithSymbolicLinks(File toDeleteParent)
     {
+        if (toDeleteParent.isDirectory() == false)
+        {
+            operationLog
+                    .error("Directory structure is different than expected. File '"
+                            + toDeleteParent.getPath()
+                            + "' should be a directory. It will not be cleared.");
+            return;
+        }
         for (File file : toDeleteParent.listFiles())
         {
             // all these files should be symbolic links to a dataset directory.
             // We cannot delete recursively here, it would remove the original files.
-            file.delete();
+            boolean ok = file.delete();
+            if (ok == false)
+            {
+                operationLog.error("Cannot delete the file: " + file.getPath());
+            }
         }
         toDeleteParent.delete();
     }