Hidy Dragan,
There are two better (or far less coding) solutions. One is the simple class code in my reply to Brenda in this thread. The other is setting a custom grid or form property as a flag for "lHangingValidation". Any control that has a valid, sets this flag in interactivechange (nearly all valid code is moved there except messages) then in grid.valid you "return !thisform.lHangingValidation". This in turn lets focus stay in grid (if any hanging validation) and valid act as it should (say almost as it should :)).
Cetin