diff --git a/include/opendht/value.h b/include/opendht/value.h
index 2661751a3e9bd190c595162bde1585ce03430d8e..df366252dc8a6d2b63376c9aecbc01902c4184a1 100644
--- a/include/opendht/value.h
+++ b/include/opendht/value.h
@@ -226,6 +226,8 @@ struct Value : public Serializable
     /** Generic constructor */
     Value(ValueType::Id t, const Blob& data, Id id = INVALID_ID)
      : id(id), type(t), data(data) {}
+    Value(ValueType::Id t, Blob&& data, Id id = INVALID_ID)
+     : id(id), type(t), data(std::move(data)) {}
     Value(ValueType::Id t, const Serializable& d, Id id = INVALID_ID)
      : id(id), type(t), data(d.getPacked()) {}
     Value(const ValueType& t, const Serializable& d, Id id = INVALID_ID)