>delete >if eof() && sometimes delete last record moves pointer to eof >go bottom >endif >skip 1 && these skips move pointer >skip -1 && to correct place >>This gives a full table refresh, and sets the pointer at the correct >record, at least in my tests thus far... Just for total purists - this may give strange results in case you have one record and delete it. The time when this may happen is when user is testing it before using it for real - makes one record, deletes it, puf: the 'skip -1' line would try to go past BOF(), but it really gets you left past Eof() (just tried it). Fox won't complain, but your form should really behave as if the table was empty, and you can't test recc(), you should check for locate/found()... a real PITA, if you want to do it thoroughly. I really don't know how to solve it without showing the deleted record (but then I'd change the 'delete' on cmdDelete to 'UNdelete', and change its .click appropriate). The irony of it is that it happens just at the beginning and never more, but then, the beginning really is the time when it should work flawlessly.