diff --git a/src/caosadvancedtools/cache.py b/src/caosadvancedtools/cache.py
index 54ec006ff747dc510141a840add3a56be17ac7b7..59455d8d7e3867477d363d524f8a7139c8108698 100644
--- a/src/caosadvancedtools/cache.py
+++ b/src/caosadvancedtools/cache.py
@@ -300,8 +300,10 @@ class Cache(AbstractCache):
         if entities is None:
             # TODO this might become a problem. If many entities are cached,
             # then all of them are retrieved here...
+            ids = [c_id for c_id, _ in res]
+            ids = set(ids)
             entities = db.Container()
-            entities.extend([db.Entity(id=c_id) for c_id, _ in res])
+            entities.extend([db.Entity(id=c_id) for c_id in ids])
             entities.retrieve()
 
         v = {c_id: c_version for c_id, c_version in res}