diff --git a/p2p/discover/udp.go b/p2p/discover/udp.go
index e40de2c36fe5495dc99d0d088b30b74b138628d7..5cc0b3d74bd9d9dca35783a3576090fbfd6c7e85 100644
--- a/p2p/discover/udp.go
+++ b/p2p/discover/udp.go
@@ -613,7 +613,7 @@ func (req *findnode) handle(t *udp, from *net.UDPAddr, fromID NodeID, mac []byte
 	if expired(req.Expiration) {
 		return errExpired
 	}
-	if t.db.node(fromID) == nil {
+	if age := time.Since(t.db.lastPong(fromID)); age > nodeDBNodeExpiration {
 		// No bond exists, we don't process the packet. This prevents
 		// an attack vector where the discovery protocol could be used
 		// to amplify traffic in a DDOS attack. A malicious actor