I realise this isn't a solution to Frank's immediate problem, but is there any reason to not recommend using "on delete cascade" for all of OACS's RI constraints? I always assumed the current codebase didn't do that because postgres didn't support on delete cascade in the early 7.x series, but now that all the supported PG versions can handle it should it not be adopted? This would reduce nuking a user to "acs_object__delete(:user_id)"...