diff --git a/eth/handler.go b/eth/handler.go
index 01550e6c28feae2efb77deef76c037739a18d4d7..1d5a04100ce771e8fb3057e70d81de9012b641f1 100644
--- a/eth/handler.go
+++ b/eth/handler.go
@@ -295,6 +295,13 @@ func (pm *ProtocolManager) handle(p *peer) error {
 			glog.V(logger.Warn).Infof("%v: timed out DAO fork-check, dropping", p)
 			pm.removePeer(p.id)
 		})
+		// Make sure it's cleaned up if the peer dies off
+		defer func() {
+			if p.forkDrop != nil {
+				p.forkDrop.Stop()
+				p.forkDrop = nil
+			}
+		}()
 	}
 	// main loop. handle incoming messages.
 	for {