Ok, if you restart the application after adding the new record, does it work then? If so, calling a Data1.Refresh after AddNew/Update may fix it. When you add a new record to a recordset, it gets appended to the end. When you Update, it's written to the database, but your Recordset (in memory) still has it at the end. Calling Refresh will repopulate your Recordset with the new info from the DB, with the new record in the right place (not necessarily at the end). It sounds like the Data1 thinks the new record is still at the end of the Recordset. In reality it IS still at the end until you Refresh, at least as far as the Data control is concerned.
Also, Validate and Reposition don't fire if EOF = True, so that's another reason I think this is the problem.
Let me know if this doesn't do it...
-Mike
Any man willing to sacrifice liberty for security deserves neither liberty nor security.
-Ben Franklin