diff --git a/src/mol-util/lru-cache.ts b/src/mol-util/lru-cache.ts
index b6f843503a4b76ec0a16f9876f0c179b374c5c94..b5f39b5dabeee7f5050a3e8cc7a21e7a09a1a457 100644
--- a/src/mol-util/lru-cache.ts
+++ b/src/mol-util/lru-cache.ts
@@ -43,11 +43,14 @@ namespace LRUCache {
         return void 0;
     }
 
-    export function set<T>(cache: LRUCache<T>, key: string, data: T): T {
+    export function set<T>(cache: LRUCache<T>, key: string, data: T): T | undefined {
+        let removed: T | undefined = undefined;
         if (cache.entries.count >= cache.capacity) {
-            cache.entries.remove(cache.entries.first!);
+            const first = cache.entries.first!;
+            removed = first.value.data;
+            cache.entries.remove(first);
         }
         cache.entries.addLast(entry(key, data));
-        return data;
+        return removed;
     }
 }
\ No newline at end of file