Have a batch posting program that adds records to a number of tables. Tables to be updated are using optimistic table buffering with multilocks set on. When all records have been added, changes are committed with tableupdate(.T.,.F.) inside a transaction. If any tableupdate() return .F., execute a ROLLBACK and a tablerevert() on all tables, otherwise go to END TRANSACTION. I've run into a situation where one of the tables does not contain the new records at the end of the transaction, but all of the others do. In debug, I verified that tableupdate() returned .T. for all of the tables. This code has been in use for a long time with no problems. Any ideas of what set of circumstances could be causing it to break now?