Do you have any code in the BeforeDelete event or is there something that could be firing in your environment that is moving the record pointer? To make sure that to BO is OK, create a new form, drop the BO on the form, and manually populate the BO. Add a button to delete the current row. Does it delete only the last record? Is the BO that you are deleting from tied to a grid?