diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorkerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorkerTest.java
index 6cc0f3ed183033601b74af35c29efc3c917d80ad..172e0f79df172a37dcce88650f81f701f6b13f3f 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorkerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorkerTest.java
@@ -59,6 +59,12 @@ public class SampleListingWorkerTest extends AbstractDAOTest
     private final Long[] CHILDREN_IDS =
         { CHILD_WITH_2_PARENTS_ID, 985L, 986L, 987L, 988L, 989L };
 
+    private final Long[] PARENT_IDS =
+        { PARENT1_ID, PARENT2_ID };
+
+    private final Long[] GRANDPARENT_IDS =
+        { 325L, 4L };
+
     private SampleListerDAO sampleListerDAO;
 
     private SecondaryEntityDAO secondaryDAO;
@@ -145,6 +151,24 @@ public class SampleListingWorkerTest extends AbstractDAOTest
         }
     }
 
+    @Test
+    public void testListSamplesForChild()
+    {
+        final ListSampleCriteria baseCriteria =
+                ListSampleCriteria.createForChild(new TechId(CHILD_WITH_2_PARENTS_ID));
+        final ListOrSearchSampleCriteria criteria = new ListOrSearchSampleCriteria(baseCriteria);
+        final SampleListingWorker worker =
+                SampleListingWorker.create(criteria, BASE_INDEX_URL, sampleListerDAO, secondaryDAO);
+        final List<Sample> list = worker.load();
+        assertEquals(2, list.size());
+        for (Sample s : list)
+        {
+            assertTrue(Arrays.binarySearch(PARENT_IDS, s.getId()) >= 0);
+            assertTrue(Arrays.binarySearch(GRANDPARENT_IDS, s.getGeneratedFrom().getId()) >= 0);
+            checkSpace(s);
+        }
+    }
+
     @Test
     public void testListSamplesForExperiment()
     {