diff --git a/Tactical/Overhead.cpp b/Tactical/Overhead.cpp index dd79d2ad8..ca80c0960 100644 --- a/Tactical/Overhead.cpp +++ b/Tactical/Overhead.cpp @@ -4896,7 +4896,13 @@ SoldierID FindPrevActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLes SoldierID bLastTeamID = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; SoldierID cnt = pSoldier->ubID - 1; - for ( ; cnt > bLastTeamID; --cnt ) + // Guard against ubID underflow. We'll start searching for previous merc from the lastID in that case + if ( cnt >= NOBODY ) + { + cnt = gTacticalStatus.Team[pSoldier->bTeam].bLastID; + } + + for ( ; cnt >= bLastTeamID; --cnt ) { pTeamSoldier = cnt; if ( fOnlyRegularMercs )