diff --git a/include/opendht/value.h b/include/opendht/value.h
index cb9e4433cc10b2ee0ca6b4ce9a5d942be18278ef..b9dad2259c876bd697948cd7d633c60b5c8b503e 100644
--- a/include/opendht/value.h
+++ b/include/opendht/value.h
@@ -662,13 +662,12 @@ struct OPENDHT_PUBLIC Select
      * @return the set of fields.
      */
     std::set<Value::Field> getSelection() const {
-        return std::set<Value::Field>(fieldSelection_.begin(), fieldSelection_.end());
+        return {fieldSelection_.begin(), fieldSelection_.end()};
     }
 
     template <typename Packer>
     void msgpack_pack(Packer& pk) const { pk.pack(fieldSelection_); }
     void msgpack_unpack(const msgpack::object& o) {
-        fieldSelection_.clear();
         fieldSelection_ = o.as<decltype(fieldSelection_)>();
     }