diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/business/SampleProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/business/SampleProvider.java
index 85ab7e45ebb4d8c844d67fed6625cc1888c90a27..fb0e3ddca45ec913d8bb0fdfa3eb50f95c6a6e5d 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/business/SampleProvider.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/business/SampleProvider.java
@@ -17,8 +17,10 @@
 package ch.systemsx.cisd.openbis.plugin.phosphonetx.server.business;
 
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister;
@@ -59,15 +61,21 @@ class SampleProvider implements ISampleProvider
             ListOrSearchSampleCriteria criteria)
     {
         List<Sample> list = lister.list(criteria);
+        Set<Long> sampleIDs = new HashSet<Long>();
         for (Sample sample : list)
         {
             samplesByPermIDs.put(sample.getPermId(), sample);
-            ListSampleCriteria criteria2 =
-                    ListSampleCriteria.createForChild(new TechId(sample.getId()));
-            ListOrSearchSampleCriteria criteria3 = new ListOrSearchSampleCriteria(criteria2);
-            criteria3.setEnrichDependentSamplesWithProperties(true);
-            gatherSamplesAndAncestorsRecursively(lister, criteria3);
+            sampleIDs.add(sample.getId());
         }
+        if (sampleIDs.isEmpty())
+        {
+            return;
+        }
+        ListSampleCriteria criteria2 =
+            ListSampleCriteria.createForChildren(sampleIDs);
+        ListOrSearchSampleCriteria criteria3 = new ListOrSearchSampleCriteria(criteria2);
+        criteria3.setEnrichDependentSamplesWithProperties(true);
+        gatherSamplesAndAncestorsRecursively(lister, criteria3);
     }
 
     public Sample getSample(String permID)