diff --git a/src/main/java/org/caosdb/server/entity/Message.java b/src/main/java/org/caosdb/server/entity/Message.java
index 91720aed492a8b1875bb5613df2aaace7df3bef5..a1d9513f3d7a2068e10563fbc2d4fb447fe1964b 100644
--- a/src/main/java/org/caosdb/server/entity/Message.java
+++ b/src/main/java/org/caosdb/server/entity/Message.java
@@ -78,7 +78,7 @@ public class Message extends Exception implements Comparable<Message>, ToElement
     this(type, code, null, null);
   }
 
-  public Message(Integer code, String description) {
+  public Message(final Integer code, final String description) {
     this(MessageType.Info, code, description);
   }
 
@@ -95,7 +95,7 @@ public class Message extends Exception implements Comparable<Message>, ToElement
     this(type, code, description, null);
   }
 
-  public Message(MessageType type, String description) {
+  public Message(final MessageType type, final String description) {
     this(type.toString(), 0, description);
   }
 
@@ -160,6 +160,10 @@ public class Message extends Exception implements Comparable<Message>, ToElement
     System.out.println(indent + "+------------------------------------------------------ ");
   }
 
+  public boolean equalsCore(final Message other) {
+    return this.code == other.code && this.description == other.description;
+  }
+
   @Override
   public int compareTo(final Message o) {
     final int tc = this.type.compareToIgnoreCase(o.type);
diff --git a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java
index bc26f539e04ebc9d3d696d731f57654fe7a7ddcc..f3e3bd0af91b2601a6d70d9e8c012f1545c7dd5f 100644
--- a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java
+++ b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java
@@ -105,12 +105,16 @@ public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBa
 
   private MessageCode getMessageCode(final Message m) {
     // TODO move to Message class.
-    if (m.equals(ServerMessages.ENTITY_DOES_NOT_EXIST)) {
+    if (m.equalsCore(ServerMessages.ENTITY_DOES_NOT_EXIST)) {
       return MessageCode.MESSAGE_CODE_ENTITY_DOES_NOT_EXIST;
-    } else if (m.equals(ServerMessages.ENTITY_HAS_NO_PROPERTIES)) {
+    } else if (m.equalsCore(ServerMessages.ENTITY_HAS_NO_PROPERTIES)) {
       return MessageCode.MESSAGE_CODE_ENTITY_HAS_NO_PROPERTIES;
+    } else if (m.getCode() == 0) {
+      return MessageCode.MESSAGE_CODE_UNSPECIFIED;
+    } else {
+      return MessageCode.MESSAGE_CODE_UNKNOWN;
+      // TODO(tf) throw new UnsupportedOperationException("Unkown message code: " + m.toString());
     }
-    throw new UnsupportedOperationException("Unkown message code: " + m.toString());
   }
 
   public Version convert(final org.caosdb.server.entity.Version from) {