diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/PersonTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/PersonTranslator.java
index cc0533492c7fc80e155b17a86e9995992229ae2c..33ba2473f6e196462e972df35a7fda31bdfa5230 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/PersonTranslator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/PersonTranslator.java
@@ -40,14 +40,14 @@ public class PersonTranslator
         final List<Person> result = new ArrayList<Person>();
         for (final PersonPE person : persons)
         {
-            result.add(PersonTranslator.translate(person));
+            result.add(PersonTranslator.translate(person, true));
         }
         return result;
     }
 
     public final static Person translate(final PersonPE person)
     {
-        return translate(person, true);
+        return translate(person, false);
     }
 
     private final static Person translate(final PersonPE person, final boolean recursively)
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java
index 8673d8ad09ad42e65ff3c09eae7656de69bfe8a0..5d44bbe67eac39e71a933a11d89865dc9a0e2f65 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java
@@ -19,12 +19,14 @@ package ch.systemsx.cisd.openbis.generic.server;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.time.DateUtils;
 import org.hamcrest.core.IsEqual;
 import org.jmock.Expectations;
 import org.springframework.dao.DataIntegrityViolationException;
@@ -44,6 +46,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BatchOperationKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DisplaySettings;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
@@ -74,6 +77,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUploadContext;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE;
@@ -96,9 +100,9 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.translator.DataSetTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.translator.DtoConverters;
 import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator;
-import ch.systemsx.cisd.openbis.generic.shared.translator.SpaceTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.translator.MaterialTypeTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.translator.PersonTranslator;
+import ch.systemsx.cisd.openbis.generic.shared.translator.SpaceTranslator;
 
 /**
  * Test cases for corresponding {@link CommonServer} class.
@@ -700,6 +704,25 @@ public final class CommonServerTest extends AbstractServerTestCase
         context.assertIsSatisfied();
     }
 
+    private static DeletionPE createDeletion(String registrator, Date registrationDate,
+            String reason)
+    {
+        final DeletionPE result = new DeletionPE();
+        final PersonPE person = new PersonPE();
+        person.setUserId(registrator);
+        result.setRegistrator(person);
+        result.setRegistrationDate(registrationDate);
+        result.setReason(reason);
+        return result;
+    }
+
+    private static void assertEqualContent(DeletionPE deletionPE, Deletion deletion)
+    {
+        assertEquals(deletionPE.getReason(), deletion.getReason());
+        assertEquals(deletionPE.getRegistrationDate(), deletion.getRegistrationDate());
+        assertEquals(deletionPE.getRegistrator().getUserId(), deletion.getRegistrator().getUserId());
+    }
+
     @Test
     public void testListPropertyTypes()
     {
@@ -1583,4 +1606,31 @@ public final class CommonServerTest extends AbstractServerTestCase
         assertEquals(experimentPE.getPermId(), experiment.getPermId());
         context.assertIsSatisfied();
     }
+
+    @Test
+    public void testListDeletions()
+    {
+        // tests listing, sorting by date and translation
+        prepareGetSession();
+
+        Date currentDate = new Date();
+        final DeletionPE del1 = createDeletion("p1", DateUtils.addHours(currentDate, -1), "r1");
+        final DeletionPE del2 = createDeletion("p2", currentDate, "r2");
+        final DeletionPE del3 = createDeletion("p3", DateUtils.addDays(currentDate, 1), "r3");
+
+        context.checking(new Expectations()
+            {
+                {
+                    one(deletionDAO).listAllEntities();
+                    will(returnValue(Arrays.asList(del2, del1, del3)));
+                }
+            });
+        List<Deletion> result = createServer().listDeletions(SESSION_TOKEN);
+
+        assertEquals(3, result.size());
+        assertEqualContent(del1, result.get(0));
+        assertEqualContent(del2, result.get(1));
+        assertEqualContent(del3, result.get(2));
+        context.assertIsSatisfied();
+    }
 }
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/AbstractServerTestCase.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/AbstractServerTestCase.java
index 7b7d20b5059bf9e6a2120d5a62358a680bccd1e7..8e1b56d5b83bbb230fbbc8be281dc73174948c22 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/AbstractServerTestCase.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/AbstractServerTestCase.java
@@ -56,6 +56,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataSetTypeDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataStoreDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDatabaseInstanceDAO;
+import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDeletionDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityTypeDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExperimentDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IFileFormatTypeDAO;
@@ -143,6 +144,8 @@ public abstract class AbstractServerTestCase extends AssertJUnit
 
     protected IProjectDAO projectDAO;
 
+    protected IDeletionDAO deletionDAO;
+
     protected IExperimentBO experimentBO;
 
     protected ISampleTypeDAO sampleTypeDAO;
@@ -211,6 +214,7 @@ public abstract class AbstractServerTestCase extends AssertJUnit
         vocabularyDAO = context.mock(IVocabularyDAO.class);
         dataStoreDAO = context.mock(IDataStoreDAO.class);
         queryDAO = context.mock(IQueryDAO.class);
+        deletionDAO = context.mock(IDeletionDAO.class);
         // BO
         groupBO = context.mock(IGroupBO.class);
         entityTypeBO = context.mock(IEntityTypeBO.class);
@@ -263,6 +267,8 @@ public abstract class AbstractServerTestCase extends AssertJUnit
                     will(returnValue(dataSetTypeDAO));
                     allowing(daoFactory).getDataStoreDAO();
                     will(returnValue(dataStoreDAO));
+                    allowing(daoFactory).getDeletionDAO();
+                    will(returnValue(deletionDAO));
                 }
             });
     }