in reply to Wrong + Right = Even Worse

I have encountered such garbage before, and, after a lot of bouncing back-and-forth as to what to do, the decision was ... to bite the bullet and fix the damn thing, once and for all.   The project was of a comparable size and, as it turns out, perhaps even-worse than what you describe, because identical subroutine-names were used in the different required-files.   (So, you absolutely could not predict what a particular subroutine-call would actually do.)

It took about a month to knuckle down and do the conversion, including testing and so-forth, and along the way the entire team cursed the name and the family heritage of the hack that had done this.   But the application also became more-or-less stable for the very first time in its life.   I would probably make the same recommendation again.   It is the lesser of two evils, but status-quo is not acceptable either.