I see, in some rare cases the algo skip the wall check.
It can happen only if Player.move reach 0 without going into negative values. And the lower the speed the more likely it can happen.
Greg, to correct the problem you just have to put in event 10:
[code]Player: move = 0
-> System: Set timer to max(0,timer-dt)
-> Player: Set checked to false <-- that[/code]