diff --git a/common/source/java/ch/systemsx/cisd/common/filesystem/DirectoryScanningTimerTask.java b/common/source/java/ch/systemsx/cisd/common/filesystem/DirectoryScanningTimerTask.java
index da5124c452372caf551fb91dd01f01fda8ca304b..d2bd7e269706208e98131fbb75cec254d2b24acb 100644
--- a/common/source/java/ch/systemsx/cisd/common/filesystem/DirectoryScanningTimerTask.java
+++ b/common/source/java/ch/systemsx/cisd/common/filesystem/DirectoryScanningTimerTask.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.common.filesystem;
 
 import java.io.File;
 import java.io.FileFilter;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
@@ -324,7 +325,7 @@ public final class DirectoryScanningTimerTask extends TimerTask implements ITime
             return;
         }
         final Set<StoreItem> itemSet = new HashSet<StoreItem>(Arrays.asList(allStoreItemsOrNull));
-        for (StoreItem errorItem : errorLog.keySet())
+        for (StoreItem errorItem : new ArrayList<StoreItem>(errorLog.keySet()))
         {
             if (itemSet.contains(errorItem) == false)
             {