This sounds impossible to me when I check the code:One bug, when i was playing with Sumeria - neolithic period, i had warrior/general and when he got elite status he could be upgraded to Guardu unit.
There are two checks:
if pTeam.isHasTech(gc.getUnitInfo(data[2]).getPrereqAndTech()):
and later: if pWinnerTeam.isHasTech(gc.getInfoTypeForString("TECH_BUERGERSOLDATEN")): = Tech Civic Soldiers (Iron Age)
please post the save file, if this really happens!
(such failures can happen, if the game found a python error. this happens silently without ctd and then all the python scripts don't work anymore, so if you think something does or doesn't work as it should, save the game just as it is, load it still after that and then the python code resets and everything works again)
this always worked.

