>>I don't think VFP "moves" the record pointer. After tableupdate() is successful VFP assigns a new number to the RECNO() but nothing physically is moved. But in my case, of tablerevert(), it seems like VFP actually moves the pointer to a new (phantom) position.
>
>I'm pretty sure the pointer is moved (if we're talking about table buffering). In your case since the newly added record had to be reverted, the pointer positioned on the EOF(). I see nothing wrong here.
I believe I found the solution to my dilemma; I won't do tablerevert() if tableupdate() fails and this will solve my issue.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham