He's talking about walking off the edge, but canjump remaining 1 (because jump button wasn't pressed).
Now this is the kind of thing that collision free is supposed to be used on, but it never seems to work on the y axis.
A more reliable approach is to do this:
Player1>Collision>TopSide of Ground>
CreateTimer("Event Actor", "timername", 50);
Then on
Player1>CollisionFinish>Ground>
DestroyTimer("timername");
And on
Player1>Timer>
canjump=0;
You may have to adjust the timerlength to suit your game. I have mine at 50 and it works quite well. (60fps game)
NOW
Some of you may be thinking, shouldn't that be the other way around? Shouldn't collision finish Create the timer and Collision destroy it?
Well this is where it gets interesting. I have it the other way around on my stairs. Works fine. But on my ground it doesn't. What i posted here is the way it works for my ground and platforms.
If it doesn't work for you this way then switch it.