diff --git a/src/main/java/org/caosdb/server/query/Query.java b/src/main/java/org/caosdb/server/query/Query.java
index 37b72597d351202102783f6d439c395a103edb31..2a4dad0368ad76020481659fee5a097019c6e08a 100644
--- a/src/main/java/org/caosdb/server/query/Query.java
+++ b/src/main/java/org/caosdb/server/query/Query.java
@@ -719,10 +719,7 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac
   private void fillContainerWithResult() {
     if (this.container != null && this.type == Type.FIND) {
       for (final IdVersionAclTriplet t : this.resultSet) {
-        // ignore internal entities
-        if (t.id < 100) {
-          continue;
-        }
+
         final Entity e = new RetrieveEntity(t.id, t.version);
 
         // if query has select-clause:
@@ -761,6 +758,7 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac
       }
 
       this.resultSet = filterEntitiesWithoutRetrievePermission(this.resultSet);
+      removeInternalEntitiesFromResultSet();
       fillContainerWithResult();
     } catch (final SQLException e) {
       e.printStackTrace();
@@ -774,6 +772,16 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac
     cache.clear();
   }
 
+  /** There are internal Entities (with ID<100) that should never be returned * */
+  private void removeInternalEntitiesFromResultSet() {
+    for (final IdVersionAclTriplet t : resultSet) {
+      // ignore internal entities
+      if (t.id < 100) {
+        resultSet.remove(t);
+      }
+    }
+  }
+
   /**
    * Cache a query result.
    *
@@ -919,9 +927,6 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac
       final long t1 = System.currentTimeMillis();
 
       final IdVersionAclTriplet triplet = entityIterator.next();
-      if (triplet.id <= 99) {
-        continue;
-      }
 
       if (!acl_cache.containsKey(triplet.acl)) {
         acl_cache.put(