I believe valid does not fire if the form is intercepting keystrokes and does something based on that. I could be wrong - VFP is proving me to be very stupid!
What I really need to know is when the controlsource value in the buffer changes.
A problem is a problem only as long as it has a possible solution. Lacking that, it becomes a FACT!