Using 'where current of ...' in the delete could be causing the problem, especially after doing a commit. I would change it to be the primary key fields.