I seemed to have resolved this issue by a: LOCK TABLE account IN EXCLUSIVE MODE; at the very start of the transaction to prevent that transaction from running in parallel. The transaction has quite a few selects and inserts and a few updates. I was hoping to not lock at the start of the transaction which will effectively serialize that code. The update that was causing the deadlock was just about the last command in the transaction. Removing that update and the deadlocks go away. I had hoped that a LOCK near the end of the transaction (before that UPDATE that deadlocks) would work. Oddly, it didn't and the deadlock was reported then on the LOCK itself, plus my deadlock_timeout (60 seconds) didn't seem to apply in that case. A mystery. Thanks for the help, -- Bill Moseley. moseley@xxxxxxxx Sent from my iMutt -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general