There is a residual problem with the Bug Fix.
I was thinking that a bit of code in the Main Loop might fix it, as follows:
Load up the Airborne Status Indicator at #85D1.
Check: is it '1' (meaning that 'Willy is jumping')?
If not, then reset the Jumping Animation Counter at #85D5 to zero.
(But if the Airborne Status Indicator does have a value of 1, then the command which resets the Jump Counter to zero is bypassed via a relative jump.)
I have inserted the above (11 bytes) into the Main Loop (replacing the redundant 'Screen Flash Counter' code in the attached file), which has resolved the last remaining 'structural' problem with the patch. There is still plenty of scope for the patch to be made more byte-efficient, though. Or indeed, other options considered (such as Andrew Broad's suggestion).
Edited by IRF, 23 April 2016 - 10:56 PM.