anchor.diff:          or (aUnitType in [UnitTypeToIndex[WARRIOR_EQUIPABLE_TH_MIN]..UnitTypeToIndex[WARRIOR_EQUIPABLE_TH_MAX]])) then
       begin
         H := fIDCache.GetHouse(aHouseID);
  -      if (H <> nil) and (H is TKMHouseTownHall) then
  +      if (H <> nil) and (H is TKMHouseTownHall) and not H.IsDestroyed and H.IsComplete then
           Result := TKMHouseTownHall(H).Equip(UnitIndexToType[aUnitType], aCount);
       end
       else
  
positive.code:     and (aUnitType in [UnitTypeToIndex[WARRIOR_EQUIPABLE_BARRACKS_MIN]..UnitTypeToIndex[WARRIOR_EQUIPABLE_BARRACKS_MAX]]) then
      begin
        H := fIDCache.GetHouse(aHouseID);
        if (H <> nil) and (H is TKMHouseBarracks) then
          Result := TKMHouseBarracks(H).Equip(UnitIndexToType[aUnitType], aCount);
      end
      else
  
negative.code:     begin
        Res := WareIndexToType[aWareType];
        H := fIDCache.GetHouse(aHouseID);
        if (H <> nil)
          and not H.IsDestroyed
          and H.IsComplete then
          for I := 1 to 4 do
            if gRes.Houses[H.HouseType].ResOutput[I] = Res then
            begin
  