diff --git a/src/main/java/org/caosdb/server/query/Query.java b/src/main/java/org/caosdb/server/query/Query.java
index 570435fcc3f002a4362c8a54db9b95c5133d65e9..6861f081038b031f2bf15c211cc23a0e93113e14 100644
--- a/src/main/java/org/caosdb/server/query/Query.java
+++ b/src/main/java/org/caosdb/server/query/Query.java
@@ -49,6 +49,7 @@ import org.caosdb.api.entity.v1.MessageCode;
 import org.caosdb.datetime.UTCDateTime;
 import org.caosdb.server.CaosDBServer;
 import org.caosdb.server.ServerProperties;
+import org.caosdb.server.accessControl.Principal;
 import org.caosdb.server.caching.Cache;
 import org.caosdb.server.database.access.Access;
 import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
@@ -1007,7 +1008,11 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac
   String getCacheKey() {
     final StringBuilder sb = new StringBuilder();
     if (this.user != null) {
-      sb.append(this.user.getPrincipal().toString());
+      String principal_desc =
+          ((Principal) this.user.getPrincipal()).getUsername()
+              + Principal.REALM_SEPARATOR
+              + ((Principal) this.user.getPrincipal()).getRealm();
+      sb.append(principal_desc);
     }
     if (this.versioned) {
       sb.append("versioned");