AcceptChanges doesn't do what you think. You call it after the changes have been made (kind of like setting the IsDirty flag to False) or you don't have to do it at all. But if you call it before it thinks the changes have already been made and doesn't update.