Thanks for the reply Tim.
Only issue I can see is if the 'readpast' ends up skipping 'all records' with nothing getting updated. You may wish to put in a check to see that at least (only) 1 record got updated....and that if this unusual situation arises, that it is reported back to your application...for a possible 'try again please' scenario....(once you hit this issue, the skip-deadlocks might escalate exponentially...just as regular dead-locks cascade upwards in effect...and reporting it back to your application might give you a handle on it's effects on performance)