diff --git a/include/opendht/value.h b/include/opendht/value.h
index 16fd90518eb108249be4d6c9042ec4893114f6d9..320fd27e5fa7ee1dcada200b89e4b46a8adcd4a2 100644
--- a/include/opendht/value.h
+++ b/include/opendht/value.h
@@ -156,7 +156,7 @@ struct Value
             }, std::placeholders::_1, std::move(set));
         }
         static Filter chain(std::initializer_list<Filter> l) {
-            return chainAll({l.begin(), l.end()});
+            return chainAll(std::vector<Filter>(l.begin(), l.end()));
         }
         static Filter chainOr(Filter&& f1, Filter&& f2) {
             if (not f1 or not f2) return AllFilter();