diff --git a/src/main/java/de/thm/arsnova/service/DefaultEntityServiceImpl.java b/src/main/java/de/thm/arsnova/service/DefaultEntityServiceImpl.java
index 9e9f9b24ca613bbd08715599692e74b1c9385a54..5d5ade7b731d1d9a91058bd10135963145de9943 100644
--- a/src/main/java/de/thm/arsnova/service/DefaultEntityServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/DefaultEntityServiceImpl.java
@@ -68,20 +68,25 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 
 	@Override
 	public T get(final String id, final boolean internal) {
+		T entity;
 		if (internal) {
-			T entity = repository.findOne(id);
+			entity = repository.findOne(id);
 			entity.setInternal(true);
-
-			return entity;
+		} else {
+			entity = get(id);
 		}
+		modifyRetrieved(entity);
 
-		return get(id);
+		return entity;
 	}
 
 	@Override
 	@PreFilter(value = "hasPermission(filterObject, #this.this.getTypeName(), 'read')", filterTarget = "ids")
 	public Iterable<T> get(final Iterable<String> ids) {
-		return repository.findAllById(ids);
+		Iterable<T> entities = repository.findAllById(ids);
+		entities.forEach(this::modifyRetrieved);
+
+		return entities;
 	}
 
 	@Override
@@ -97,6 +102,7 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 		final T createdEntity = repository.save(entity);
 		eventPublisher.publishEvent(new AfterCreationEvent<>(this, createdEntity));
 		finalizeCreate(entity);
+		modifyRetrieved(entity);
 
 		return createdEntity;
 	}
@@ -134,6 +140,7 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 		final T updatedEntity = repository.save(newEntity);
 		eventPublisher.publishEvent(new AfterFullUpdateEvent<>(this, updatedEntity, oldEntity));
 		finalizeUpdate(updatedEntity);
+		modifyRetrieved(updatedEntity);
 
 		return updatedEntity;
 	}
@@ -174,6 +181,7 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 		eventPublisher.publishEvent(new BeforePatchEvent<>(this, entity, propertyGetter, changes));
 		final T patchedEntity = repository.save(entity);
 		eventPublisher.publishEvent(new AfterPatchEvent<>(this, patchedEntity, propertyGetter, changes));
+		modifyRetrieved(patchedEntity);
 
 		return patchedEntity;
 	}
@@ -197,7 +205,10 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 			eventPublisher.publishEvent(new BeforePatchEvent<>(this, entity, propertyGetter, changes));
 		}
 
-		return repository.saveAll(entities);
+		Iterable<T> patchedEntities = repository.saveAll(entities);
+		patchedEntities.forEach(this::modifyRetrieved);
+
+		return patchedEntities;
 	}
 
 	/**
@@ -227,6 +238,16 @@ public class DefaultEntityServiceImpl<T extends Entity> implements EntityService
 
 	}
 
+	/**
+	 * This method can be overridden by subclasses to modify a retrieved entity before it is returned by service
+	 * methods.
+	 *
+	 * @param entity The entity to be modified
+	 */
+	protected void modifyRetrieved(final T entity) {
+
+	}
+
 	public String getTypeName() {
 		return type.getSimpleName().toLowerCase();
 	}