diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java
index 270196c547e63cc600763aba58069e8db93afb95..9555a0247cc32674c759b0bc06734f2fedfa0de5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java
@@ -18,7 +18,9 @@ package ch.systemsx.cisd.openbis.generic.shared.dto;
 
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Set;
 
 import ch.systemsx.cisd.common.annotation.CollectionMapping;
 import ch.systemsx.cisd.openbis.generic.shared.IServer;
@@ -38,8 +40,8 @@ public class ExtractableData extends Code<ExtractableData>
     private Date productionDate;
 
     private String dataProducerCode;
-
-    private String parentDataSetCode;
+    
+    private Set<String> parentDataSetCodes = new LinkedHashSet<String>();
 
     private List<NewProperty> dataSetProperties = new ArrayList<NewProperty>();
 
@@ -83,14 +85,26 @@ public class ExtractableData extends Code<ExtractableData>
         this.dataProducerCode = dataProducerCode;
     }
 
+    @Deprecated
     public final String getParentDataSetCode()
     {
-        return parentDataSetCode;
+        return parentDataSetCodes.isEmpty() ? null : parentDataSetCodes.iterator().next();
     }
 
+    @Deprecated
     public final void setParentDataSetCode(String parentDataSetCode)
     {
-        this.parentDataSetCode = parentDataSetCode;
+        parentDataSetCodes.add(parentDataSetCode);
+    }
+    
+    public final Set<String> getParentDataSetCodes()
+    {
+        return parentDataSetCodes;
+    }
+
+    public final void setParentDataSetCodes(Set<String> parentDataSetCodes)
+    {
+        this.parentDataSetCodes = parentDataSetCodes;
     }
 
     @CollectionMapping(collectionClass = ArrayList.class, elementClass = NewProperty.class)
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java
index 31a56819cd71f37adc547fe7b9295b59a1d1b953..5b06b0dafd82d297e6231f20040e88246afc9cdf 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java
@@ -591,7 +591,10 @@ public class ExternalDataBOTest extends AbstractBOTest
     {
         NewExternalData data = new NewExternalData();
         data.setCode(DATA_SET_CODE);
-        data.setParentDataSetCode(parentDataSetCodeOrNull);
+        if (parentDataSetCodeOrNull != null)
+        {
+            data.setParentDataSetCodes(Collections.singleton(parentDataSetCodeOrNull));
+        }
         data.setDataProducerCode(DATA_PRODUCER_CODE);
         data.setProductionDate(PRODUCTION_DATE);
         data.setComplete(BooleanOrUnknown.U);