diff --git a/src/main/java/org/caosdb/server/entity/UpdateEntity.java b/src/main/java/org/caosdb/server/entity/UpdateEntity.java
index c8c3d9d3f732d7891f9efb1204bc7124725a2e2c..aa6d591602df66cc9317351cf6a1ea980bc53ea3 100644
--- a/src/main/java/org/caosdb/server/entity/UpdateEntity.java
+++ b/src/main/java/org/caosdb/server/entity/UpdateEntity.java
@@ -22,21 +22,11 @@
  */
 package org.caosdb.server.entity;
 
-import org.caosdb.server.transaction.WriteTransaction;
 import org.caosdb.server.utils.EntityStatus;
 import org.jdom2.Element;
 
-/**
- * UpdateEntity class represents entities which are to be updated. The previous version is appeded
- * during the {@link WriteTransaction} transactions initialization.
- *
- * @author Timm Fitschen <t.fitschen@indiscale.com>
- */
 public class UpdateEntity extends WritableEntity {
 
-  /** The previous version of this entity. */
-  private EntityInterface original = null;
-
   public UpdateEntity(final Element element) {
     super(element);
   }
@@ -45,12 +35,4 @@ public class UpdateEntity extends WritableEntity {
   public boolean skipJob() {
     return getEntityStatus() != EntityStatus.QUALIFIED;
   }
-
-  public void setOriginal(EntityInterface original) {
-    this.original = original;
-  }
-
-  public EntityInterface getOriginal() {
-    return this.original;
-  }
 }
diff --git a/src/main/java/org/caosdb/server/transaction/WriteTransaction.java b/src/main/java/org/caosdb/server/transaction/WriteTransaction.java
index 570fce2c2b001699fdb48c1379e807ae05d62996..abda78b6feeb0de7104de5365877b28d474058fe 100644
--- a/src/main/java/org/caosdb/server/transaction/WriteTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/WriteTransaction.java
@@ -215,7 +215,13 @@ public class WriteTransaction extends Transaction<WritableContainer>
                     .setFile(oldEntity.getFileProperties().retrieveFromFileSystem());
               }
 
-              ((UpdateEntity) entity).setOriginal(oldEntity);
+              try {
+                checkPermissions(entity, deriveUpdate(entity, oldEntity));
+              } catch (final AuthorizationException exc) {
+                entity.setEntityStatus(EntityStatus.UNQUALIFIED);
+                entity.addError(ServerMessages.AUTHORIZATION_ERROR);
+                entity.addInfo(exc.getMessage());
+              }
             }
             break innerLoop;
           }
@@ -284,18 +290,6 @@ public class WriteTransaction extends Transaction<WritableContainer>
   @Override
   protected void preCheck() throws InterruptedException, Exception {
     for (final EntityInterface entity : getContainer()) {
-      try {
-        if (entity.getEntityStatus() == EntityStatus.QUALIFIED) {
-          checkPermissions(entity, deriveUpdate(entity, ((UpdateEntity) entity).getOriginal()));
-        }
-      } catch (final AuthorizationException exc) {
-        entity.setEntityStatus(EntityStatus.UNQUALIFIED);
-        entity.addError(ServerMessages.AUTHORIZATION_ERROR);
-        entity.addInfo(exc.getMessage());
-      } catch (ClassCastException exc) {
-        // not an update entity. ignore.
-      }
-
       // set default EntityACL if none present
       if (entity.getEntityACL() == null) {
         entity.setEntityACL(EntityACL.getOwnerACLFor(SecurityUtils.getSubject()));