Actually, I got a tip from someone on the UT and created a logical var that is set on the WHEN of the Gird and un-set during the VALID. It does seem to indicate a proper exit from the grid, but there was one last call to BeforeRowColChange that fired before actual exit...?
(PseudoCode only)...
WITH Grid1
Proc WHEN()
.lAbouttoLeaveGrid=.F.
EndProc
Proc VALID()
.lAbouttoLeaveGrid-.T.
EndProc
Proc BeforeRowColChange
If lAbouttoLeaveGrid
WAIT "Bye-Bye." WINDOW NOWAIT
Endif
EndProc
HTH,