Characters now display correctly (though they get lost, possibly the InsertRegion()/RemoveRegion() methods aren't behaving as they should).
More cleanup.