diff --git a/src/util/IntrusiveHashSet.hxx b/src/util/IntrusiveHashSet.hxx
index b6567e12d..a5bf5926d 100644
--- a/src/util/IntrusiveHashSet.hxx
+++ b/src/util/IntrusiveHashSet.hxx
@@ -214,7 +214,9 @@ public:
 		static_assert(!constant_time_size, "Not yet implemented");
 
 		auto &bucket = GetBucket(key);
-		bucket.remove_and_dispose_if(pred, disposer);
+		bucket.remove_and_dispose_if([this, &key, &pred](const auto &item){
+			return equal(key, item) && pred(item);
+		}, disposer);
 	}
 
 	[[nodiscard]]