diff --git a/include/opendht/network_engine.h b/include/opendht/network_engine.h
index 657622019b7a575abab0a39fc04910fd615bcebe..184c450818c1f8b52c2ff5de5988e71b4745798c 100644
--- a/include/opendht/network_engine.h
+++ b/include/opendht/network_engine.h
@@ -350,7 +350,9 @@ public:
     void processMessage(const uint8_t *buf, size_t buflen, const sockaddr* from, socklen_t fromlen);
 
     std::shared_ptr<Node> insertNode(const InfoHash& myid, const sockaddr* from, socklen_t fromlen) {
-        return cache.getNode(myid, from, fromlen, scheduler.time(), 0);
+        auto n = cache.getNode(myid, from, fromlen, scheduler.time(), 0);
+        onNewNode(n, 0);
+        return n;
     }
 
     std::vector<unsigned> getNodeMessageStats(bool in) {