Just FYI, this is a fairly common problem; the libxml developers' response to this seems to be along the lines of "entities in libxml sax are hard, either don't use entities or use DOM". Yeah, right.Hmmm. I'm sure it did work correctly with an earlier version of libxml. I don't follow the logic behind entities via SAX being hard either. For a SAX interface, I'd say it was acceptable to just report the entity reference and let the SAX client sort out resolving it.
I'm giving up on that library; it's worthless. Hopefully Expat will be better.