Peer.run was discarding the reason for disconnection sent to the disc channel by Disconnect.
@@ -220,6 +220,7 @@ loop:
reason = discReasonForError(err)
break loop
case err = <-p.disc:
+ reason = discReasonForError(err)
}