David,
BTW, I've also gotten unnecessary deadlocks when a program I was running
accidentally UPDATED a cartesian product (a join without a constraint, so
all records squared) within an explicit transaction.
So you may want to check your queries as well.
--
Josh Berkus
Aglio Database Solutions
San Francisco