pg_proc_prosrc_index is the problem, eh? I'll bet a nickel that you're
seeing still another manifestation of btree's problems with oversized
index entries. (See recent thread 'Error "vacuum pg_proc"'.)
Check to see if you have any functions whose definitions exceed 2700
bytes, eg withselect proname from pg_proc where length(prosrc) > 2700;
If so, you need to rewrite them to be smaller, perhaps by breaking
them into multiple functions.
7.0 should fix this problem, but it's a real hazard in 6.5.
regards, tom lane