See summary. (Last iteration hopefully.)
Created attachment 122440 [details] Patch
Committed as http://trac.webkit.org/changeset/104946