I wrote that hack, and I'm not very happy either, but it fixes a loud complaint. I wanted to show that Expat is not "broken", just misunderstood.
I haven't been doing enough Kid / TG to judge the scope of a proper solution. If a DOCTYPE has been declared, how much should be done to support that Doctype? Do you want to be able to read in a entire DTD (from where?) and have handlers for all of that? Or just pre-define some dictionaries in the same form as htmlentitydefs?

