diff --git a/include/opendht/default_types.h b/include/opendht/default_types.h
index f7f5b412df1b1ee9de0e2db4d11ebe1b4d7d5027..f6469d8dbd2993b3612f1a86ea8c8dc19bef397c 100644
--- a/include/opendht/default_types.h
+++ b/include/opendht/default_types.h
@@ -66,8 +66,10 @@ private:
 
 public:
     virtual void unpackValue(const Value& v) override {
-        if (v.owner)
+        if (v.owner) {
+            owner = v.owner;
             from = v.owner->getId();
+        }
         BaseClass::unpackValue(v);
     }
 
@@ -75,6 +77,7 @@ public:
         return [](const Value& v){ return v.isSigned(); };
     }
 
+    Sp<const crypto::PublicKey> owner;
     dht::InfoHash from;
 };