diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
index e3aa0e2d0b03829fc2dd1823e85ff948d1457fb9..fd5edb1c0ed43228ecc3c6c909325931f8139c47 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
@@ -146,6 +146,7 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple
                 @Override
                 public Object doInHibernate(Session session) throws HibernateException
                 {
+
                     InQuery inQuery = new InQuery<Long, Number>();
                     List<Number> list =
                             inQuery.withBatch(session, "select distinct samp_id from data where samp_id in (:sampleIds)", "sampleIds", sampleIds,
@@ -1343,6 +1344,23 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple
         scheduleDynamicPropertiesEvaluation(Arrays.asList(entity));
     }
 
+    @Override
+    protected void scheduleDynamicPropertiesEvaluation(List<DataPE> dataSets)
+    {
+        List<DataPE> toUpdate = new ArrayList<DataPE>();
+        addAllDataSetsAndComponentsRecursively(toUpdate, dataSets);
+        super.scheduleDynamicPropertiesEvaluation(toUpdate);
+    }
+
+    private void addAllDataSetsAndComponentsRecursively(List<DataPE> resultDataSets, List<DataPE> dataSets)
+    {
+        for (DataPE dataSet : dataSets)
+        {
+            resultDataSets.add(dataSet);
+            addAllDataSetsAndComponentsRecursively(resultDataSets, dataSet.getContainedDataSets());
+        }
+    }
+
     @Override
     public List<TechId> listDataSetIdsBySampleIds(final Collection<TechId> samples)
     {