diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java
index fbd01b48441ecd012126f19f211651448c099650..4c2e72266618feef2bbcdf111e1ecb9f77e43b03 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java
@@ -326,7 +326,6 @@ final class SampleListingWorker
             sampleTypes.put(type.getId(), type);
             if (singleSampleTypeMode == false)
             {
-                // TODO 2009-09-24, Piotr Buczek: use to display all parents
                 maxSampleContainerResolutionDepth =
                         Math.max(maxSampleContainerResolutionDepth, type
                                 .getContainerHierarchyDepth());
@@ -629,6 +628,24 @@ final class SampleListingWorker
             record.sample.setContainer(container);
             record.sample.setCode(IdentifierHelper.convertCode(record.sample.getSubCode(),
                     container.getCode()));
+            updateSampleIdentifier(record.sample);
         }
     }
+
+    private void updateSampleIdentifier(Sample sample)
+    {
+        SampleIdentifier identifier;
+        if (sample.getDatabaseInstance() != null)
+        {
+            final DatabaseInstanceIdentifier dbId =
+                    new DatabaseInstanceIdentifier(databaseInstance.getCode());
+            identifier = new SampleIdentifier(dbId, sample.getCode());
+        } else
+        {
+            final GroupIdentifier groupId =
+                    new GroupIdentifier(databaseInstance.getCode(), sample.getGroup().getCode());
+            identifier = new SampleIdentifier(groupId, sample.getCode());
+        }
+        sample.setIdentifier(identifier.toString());
+    }
 }