diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/ImagingDataSetRegistrationTransaction.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/ImagingDataSetRegistrationTransaction.java
index b3f021641d7634d74369e39b8692fccbf7f55674..627b5b01396e177dc19b4c3081d47ae7f675c15c 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/ImagingDataSetRegistrationTransaction.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/ImagingDataSetRegistrationTransaction.java
@@ -26,6 +26,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Properties;
 
@@ -193,7 +194,7 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr
 
     private void addNewDataSetToContainer(IDataSet dataSet, IDataSetUpdatable container)
     {
-        List<String> contained = container.getContainedDataSetCodes();
+        List<String> contained = new LinkedList<String>(container.getContainedDataSetCodes());
         contained.add(dataSet.getDataSetCode());
         container.setContainedDataSetCodes(contained);
     }