diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ImagingDatabaseHelper.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ImagingDatabaseHelper.java
index 7ad9d9451c22ca3d83a89baff0985f64b5c4db7a..e79ff6061c54c4e18316b38c485265ef11f49ecb 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ImagingDatabaseHelper.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ImagingDatabaseHelper.java
@@ -58,7 +58,10 @@ public class ImagingDatabaseHelper
             List<Channel> channels)
     {
         ChannelOwner channelOwner = ChannelOwner.createDataset(datasetId);
-        return new ImagingChannelsCreator(dao).getOrCreateChannelsMap(channelOwner, channels);
+        synchronized (IImagingQueryDAO.class)
+        {
+            return new ImagingChannelsCreator(dao).getOrCreateChannelsMap(channelOwner, channels);
+        }
     }
 
     /** @return container id */