diff --git a/p2p/discv5/net.go b/p2p/discv5/net.go
index c912cba7d114f7744379b247a497cc243894099c..53e00a38817a7abd3ff54ce8f541e0b9fbd5d615 100644
--- a/p2p/discv5/net.go
+++ b/p2p/discv5/net.go
@@ -1037,6 +1037,9 @@ func (net *Network) handle(n *Node, ev nodeEvent, pkt *ingressPacket) error {
 			net.db.ensureExpirer()
 		}
 	}
+	if ev == pongTimeout {
+		n.pingEcho = nil // clean up if pongtimeout
+	}
 	if n.state == nil {
 		n.state = unknown //???
 	}