diff --git a/src/main/java/org/caosdb/server/query/Query.java b/src/main/java/org/caosdb/server/query/Query.java
index 162f6e6f5c241bade156b37af14881cb60c5b765..a25f40c1628bb028cc9f9e07fffa45c245c2c5e6 100644
--- a/src/main/java/org/caosdb/server/query/Query.java
+++ b/src/main/java/org/caosdb/server/query/Query.java
@@ -758,7 +758,7 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac
       }
 
       this.resultSet = filterEntitiesWithoutRetrievePermission(this.resultSet);
-      removeInternalEntitiesFromResultSet();
+      this.resultSet = removeInternalEntitiesFromResultSet();
       fillContainerWithResult();
     } catch (final SQLException e) {
       e.printStackTrace();
@@ -773,13 +773,16 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac
   }
 
   /** 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);
+  private List<IdVersionAclTriplet> removeInternalEntitiesFromResultSet() {
+
+    final List<IdVersionAclTriplet> filtered = new ArrayList<>();
+    for (final IdVersionAclTriplet triplet : resultSet) {
+
+      if (triplet.id >= 100) {
+        filtered.add(triplet);
       }
     }
+    return filtered;
   }
 
   /**