Nigel,
The higher LostFocus() code evaluates/returns FALSE? This may be your problem. What happens if it evaluates to TRUE?
>I have confirmed this. The valid fires, lostfocus fires, dodefault activates higher lostfocus which has a single, simple, if statement (which evaluates false so does nothing) and then the valid fires again!
>