diff --git a/src/securedht.cpp b/src/securedht.cpp
index e6ebe0c301874704cd4952aed7ab21b5b45bb7e1..55a7bd8a0aeabd3202e4c12164f3b4c97e2794c7 100644
--- a/src/securedht.cpp
+++ b/src/securedht.cpp
@@ -79,13 +79,16 @@ SecureDht::secureType(ValueType&& type)
     type.editPolicy = [this,type](InfoHash id, const Sp<Value>& o, Sp<Value>& n, const InfoHash& nid, const SockAddr& a) {
         if (not o->isSigned())
             return type.editPolicy(id, o, n, nid, a);
-        if (o->owner != n->owner or not n->isSigned()) {
+        if (*o->owner != *n->owner or not n->isSigned()) {
             if (logger_)
-                logger_->w("Edition forbidden: signature verification failed.");
+                logger_->w("Edition forbidden: not signed or wrong owner.");
             return false;
         }
-        if (not n->checkSignature())
+        if (not n->checkSignature()) {
+            if (logger_)
+                logger_->w("Edition forbidden: signature verification failed.");
             return false;
+        }
         if (o->seq == n->seq) {
             // If the data is exactly the same,
             // it can be reannounced, possibly by someone else.