How about if you create a table with one record that contains the next PO number? Instead of getting PO from your DMax, you get it from this table. Once you give a new PO out, you update this table immediately BEFORE actually updating the POs. Theoretically, you may end up wasting some PO...