diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AttachmentBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AttachmentBO.java
index cf3c646b1e4aafa841ad7caeac80d1c1d0e992a9..16a75f31c59d0abbb877dcf7bbd39cc6028a4204 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AttachmentBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AttachmentBO.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.server.business.bo;
 
+import java.util.Collections;
 import java.util.List;
 
 import org.springframework.dao.DataAccessException;
@@ -71,7 +72,7 @@ public final class AttachmentBO extends AbstractBusinessObject implements IAttac
         final String identifier = createDeletionIdentifier(holder, fileName);
         event.setEventType(EventType.DELETION);
         event.setEntityType(EntityType.ATTACHMENT);
-        event.setIdentifiers(identifier);
+        event.setIdentifiers(Collections.singletonList(identifier));
         event.setDescription(identifier);
         event.setReason(reason);
         event.setRegistrator(registrator);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AuthorizationGroupBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AuthorizationGroupBO.java
index 5aa49645863bcf7a56575f57f3f8351dca43ab88..e0cde1e641e5fe4c0827280d16655f3d064cac9e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AuthorizationGroupBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AuthorizationGroupBO.java
@@ -17,6 +17,7 @@
 package ch.systemsx.cisd.openbis.generic.server.business.bo;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import org.springframework.dao.DataAccessException;
@@ -31,10 +32,10 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAuthorizationGroup;
 import ch.systemsx.cisd.openbis.generic.shared.dto.AuthorizationGroupPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType;
 
 /**
  * {@link IAuthorizationGroupBO} implementation.
@@ -147,7 +148,7 @@ public class AuthorizationGroupBO extends AbstractBusinessObject implements IAut
         EventPE event = new EventPE();
         event.setEventType(EventType.DELETION);
         event.setEntityType(EntityType.AUTHORIZATION_GROUP);
-        event.setIdentifiers(groupCode);
+        event.setIdentifiers(Collections.singletonList(groupCode));
         event.setDescription(groupCode);
         event.setReason(reason);
         event.setRegistrator(registrator);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
index b96fba63f71b329145f7d8c28884a7d3fc9345f8..f70a95900113e26858fd9c87a0241fefd805f434 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
@@ -303,7 +303,7 @@ public final class DataSetTable extends AbstractDataSetBusinessObject implements
         EventPE event = new EventPE();
         event.setEventType(EventType.DELETION);
         event.setEntityType(EntityType.DATASET);
-        event.setIdentifiers(dataSet.getCode());
+        event.setIdentifiers(Collections.singletonList(dataSet.getCode()));
         event.setDescription(getDeletionDescription(dataSet));
         event.setReason(reason);
         event.setRegistrator(registrator);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentBO.java
index e95986486149fd3013ae720f7ebb5de218086dc2..09e4bd08db2e0954df01ae3f65d2331d10e30c3b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentBO.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.server.business.bo;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -271,7 +272,7 @@ public final class ExperimentBO extends AbstractBusinessObject implements IExper
         EventPE event = new EventPE();
         event.setEventType(EventType.DELETION);
         event.setEntityType(EntityType.EXPERIMENT);
-        event.setIdentifiers(experiment.getPermId());
+        event.setIdentifiers(Collections.singletonList(experiment.getPermId()));
         event.setDescription(getDeletionDescription(experiment));
         event.setReason(reason);
         event.setRegistrator(registrator);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/GroupBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/GroupBO.java
index e11624b8f7a51220135d31bf119c3bd22414b6cc..f66641079eb832cc877f3fe01969379200c60e01 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/GroupBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/GroupBO.java
@@ -16,6 +16,8 @@
 
 package ch.systemsx.cisd.openbis.generic.server.business.bo;
 
+import java.util.Collections;
+
 import org.springframework.dao.DataAccessException;
 import org.springframework.dao.DataRetrievalFailureException;
 
@@ -26,11 +28,11 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISpaceUpdates;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventType;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType;
+import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.DatabaseInstanceIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.GroupIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.IdentifierHelper;
@@ -145,7 +147,7 @@ public final class GroupBO extends AbstractBusinessObject implements IGroupBO
         EventPE event = new EventPE();
         event.setEventType(EventType.DELETION);
         event.setEntityType(EntityType.SPACE);
-        event.setIdentifiers(group.getCode());
+        event.setIdentifiers(Collections.singletonList(group.getCode()));
         event.setDescription(getDeletionDescription(group));
         event.setReason(reason);
         event.setRegistrator(registrator);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java
index 9c67d7003c6590c4d680f0656e990a77ebac93ef..80a328945b6ed1fd3fd7c32c3042f6ab357e680e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java
@@ -142,7 +142,7 @@ public final class MaterialBO extends AbstractMaterialBusinessObject implements
         EventPE event = new EventPE();
         event.setEventType(EventType.DELETION);
         event.setEntityType(EntityType.MATERIAL);
-        event.setIdentifiers(material.getCode());
+        event.setIdentifiers(Collections.singletonList(material.getCode()));
         event.setDescription(material.getPermId());
         event.setReason(reason);
         event.setRegistrator(registrator);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ProjectBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ProjectBO.java
index 98d9eccf339c78b3a4059c86b21b4ff23da0e0bc..1936584444ed47e0983b8ad32aca792b45caedb5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ProjectBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ProjectBO.java
@@ -17,6 +17,7 @@
 package ch.systemsx.cisd.openbis.generic.server.business.bo;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
@@ -32,14 +33,14 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment;
 import ch.systemsx.cisd.openbis.generic.shared.dto.AttachmentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectUpdatesDTO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
-import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType;
+import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.translator.AttachmentTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils;
@@ -278,7 +279,7 @@ public final class ProjectBO extends AbstractBusinessObject implements IProjectB
         EventPE event = new EventPE();
         event.setEventType(EventType.DELETION);
         event.setEntityType(EntityType.PROJECT);
-        event.setIdentifiers(project.getIdentifier());
+        event.setIdentifiers(Collections.singletonList(project.getIdentifier()));
         event.setDescription(getDeletionDescription(project));
         event.setReason(reason);
         event.setRegistrator(registrator);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/PropertyTypeBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/PropertyTypeBO.java
index e16c11e971bf31df61d403f262f51782e600c5d1..41332add6066360c95d6fc4614f93876c3859198 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/PropertyTypeBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/PropertyTypeBO.java
@@ -16,6 +16,8 @@
 
 package ch.systemsx.cisd.openbis.generic.server.business.bo;
 
+import java.util.Collections;
+
 import javax.xml.validation.Schema;
 
 import org.springframework.dao.DataAccessException;
@@ -37,13 +39,13 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PropertyTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
 import ch.systemsx.cisd.openbis.generic.shared.dto.VocabularyPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind;
 import ch.systemsx.cisd.openbis.generic.shared.util.XmlUtils;
 
@@ -231,7 +233,7 @@ public final class PropertyTypeBO extends VocabularyBO implements IPropertyTypeB
         EventPE event = new EventPE();
         event.setEventType(EventType.DELETION);
         event.setEntityType(EntityType.PROPERTY_TYPE);
-        event.setIdentifiers(propertyTypePE.getCode());
+        event.setIdentifiers(Collections.singletonList(propertyTypePE.getCode()));
         event.setDescription(getDeletionDescription(propertyTypePE));
         event.setReason(reason);
         event.setRegistrator(registrator);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/VocabularyBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/VocabularyBO.java
index 0e24dfc4f07a05c177777e58b514f1f21a0614a0..8d2301eb4ef04f8eb2efaee47353dbb99cb9e126 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/VocabularyBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/VocabularyBO.java
@@ -386,7 +386,7 @@ public class VocabularyBO extends AbstractBusinessObject implements IVocabularyB
         EventPE event = new EventPE();
         event.setEventType(EventType.DELETION);
         event.setEntityType(EntityType.VOCABULARY);
-        event.setIdentifiers(vocabularyPE.getCode());
+        event.setIdentifiers(Collections.singletonList(vocabularyPE.getCode()));
         event.setDescription(getDeletionDescription(vocabularyPE));
         event.setReason(reason);
         event.setRegistrator(registrator);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EventDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EventDAO.java
index 5027fd273284a20dec40ed9dcbcb7f1e060f70fa..091e696ac18174aac4bd9adc4cb6ce37f76f15ba 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EventDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EventDAO.java
@@ -17,6 +17,7 @@
 package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -28,6 +29,7 @@ import org.hibernate.criterion.MatchMode;
 import org.hibernate.criterion.Restrictions;
 import org.springframework.jdbc.support.JdbcAccessor;
 
+import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.utilities.MethodUtils;
@@ -66,7 +68,7 @@ public class EventDAO extends AbstractGenericEntityDAO<EventPE> implements IEven
         assert eventType != null : "Unspecified eventType.";
 
         final Criteria criteria = getSession().createCriteria(EventPE.class);
-        criteria.add(Restrictions.like("identifiers", identifier, MatchMode.ANYWHERE));
+        criteria.add(Restrictions.like("identifiersInternal", identifier, MatchMode.ANYWHERE));
         criteria.add(Restrictions.eq("entityType", entityType));
         criteria.add(Restrictions.eq("eventType", eventType));
         final EventPE result = tryGetEntity(criteria.uniqueResult());
@@ -102,11 +104,29 @@ public class EventDAO extends AbstractGenericEntityDAO<EventPE> implements IEven
                     "%s(%s): %d data set deletion events(s) have been found.", MethodUtils
                             .getCurrentMethod().getName(), lastDesc, list.size()));
         }
+
         ArrayList<DeletedDataSet> result = new ArrayList<DeletedDataSet>();
         for (EventPE event : list)
         {
-            result.add(new DeletedDataSet(event.getIdentifiers(), event.getDescription(), event
-                    .getId()));
+            List<String> identifiers = event.getIdentifiers();
+            List<String> locations =
+                    Arrays.asList(event.getDescription().split(EventPE.IDENTIFIER_SEPARATOR));
+            if (identifiers.size() != locations.size())
+            {
+                throw EnvironmentFailureException.fromTemplate(
+                        "Number of deleted dataset codes %s does not match "
+                                + "the number of deleted data set locations %s in eventId='%s'",
+                                identifiers.size(), locations.size(), event.getId());
+            }
+            int pos = 0;
+            for (pos = 0; pos < identifiers.size(); pos++)
+            {
+                String dataSetCode = identifiers.get(pos);
+                String dataSetLocation = locations.get(pos);
+                DeletedDataSet deletedDataSet =
+                        new DeletedDataSet(dataSetCode, dataSetLocation, event.getId());
+                result.add(deletedDataSet);
+            }
         }
         return result;
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/EventPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/EventPE.java
index e5d6285a1e6670cf0fa4cd0f879342c696e42cc5..ba847a98412cf051d75408ef8179ef11a74a6ba6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/EventPE.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/EventPE.java
@@ -17,6 +17,8 @@
 package ch.systemsx.cisd.openbis.generic.shared.dto;
 
 import java.io.Serializable;
+import java.util.Arrays;
+import java.util.List;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -27,6 +29,7 @@ import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
+import javax.persistence.Transient;
 
 import org.apache.commons.lang.builder.EqualsBuilder;
 import org.apache.commons.lang.builder.HashCodeBuilder;
@@ -35,6 +38,8 @@ import org.hibernate.validator.Length;
 import org.hibernate.validator.NotNull;
 
 import ch.rinn.restrictions.Friend;
+import ch.systemsx.cisd.common.collections.CollectionStyle;
+import ch.systemsx.cisd.common.collections.CollectionUtils;
 import ch.systemsx.cisd.common.utilities.ModifiedShortPrefixToStringStyle;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants;
 import ch.systemsx.cisd.openbis.generic.shared.IServer;
@@ -50,6 +55,9 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IIdHolder;
 @Friend(toClasses = DataPE.class)
 public class EventPE extends HibernateAbstractRegistrationHolder implements IIdHolder, Serializable
 {
+
+    public static final String IDENTIFIER_SEPARATOR = ", ";
+
     private static final long serialVersionUID = IServer.VERSION;
 
     public enum EntityType
@@ -64,7 +72,7 @@ public class EventPE extends HibernateAbstractRegistrationHolder implements IIdH
 
     private EntityType entityType;
 
-    private String identifiers;
+    private List<String> identifiers;
 
     private String description;
 
@@ -109,16 +117,29 @@ public class EventPE extends HibernateAbstractRegistrationHolder implements IIdH
         this.entityType = entityType;
     }
 
+    @SuppressWarnings("unused")
     @NotNull(message = ValidationMessages.IDENTIFIER_NOT_NULL_MESSAGE)
     @Column(name = ColumnNames.IDENTIFIERS)
-    public String getIdentifiers()
+    private String getIdentifiersInternal()
+    {
+        return CollectionUtils.abbreviate(identifiers, -1, CollectionStyle.NO_BOUNDARY);
+    }
+
+    @SuppressWarnings("unused")
+    private void setIdentifiersInternal(String identifier)
+    {
+        this.identifiers = Arrays.asList(identifier.split(IDENTIFIER_SEPARATOR));
+    }
+
+    @Transient
+    public List<String> getIdentifiers()
     {
         return identifiers;
     }
 
-    public void setIdentifiers(String identifier)
+    public void setIdentifiers(List<String> identifiers)
     {
-        this.identifiers = identifier;
+        this.identifiers = identifiers;
     }
 
     @Length(max = GenericConstants.DESCRIPTION_2000, message = ValidationMessages.DESCRIPTION_LENGTH_MESSAGE)
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java
index 9b06f0966619086252a890444dce37e62ffa4478..88d53e35b1adef218bf8f649cfd3cf88337517f3 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java
@@ -361,7 +361,10 @@ public final class SampleDAOTest extends AbstractDAOTest
             final EventPE event = tryGetDeletionEvent(sample);
             assertNotNull(event);
             assertEquals(reason, event.getReason());
-            assertEquals(commaSeparatedIdentifiers, event.getIdentifiers());
+            String persistedIdentifiers =
+                    CollectionUtils.abbreviate(event.getIdentifiers(), -1,
+                            CollectionStyle.NO_BOUNDARY);
+            assertEquals(commaSeparatedIdentifiers, persistedIdentifiers);
             assertEquals(registrator, event.getRegistrator());
         }
     }