anchor.diff:           AND (P.Units[I].UnitTask = nil) then
              Exit;
       // Increase count of serfs carefully
  -    Result := Max( + 1
  -                   + Byte(gHands[fOwner].Stats.GetUnitQty(ut_Serf) < 80)*2, Result);
  +    Result := Max( 1 + Byte(gHands[fOwner].Stats.GetUnitQty(ut_Serf) < 80)*2, Result);
     end;
   
   const
  
positive.code: 
    AvaiableCnt := 0;
    SetLength(AvaiableWares, RequiedCnt);
    for L := Low(SOLD_ORDER) to High(SOLD_ORDER) do
      if gHands[fOwner].Stats.GetWareBalance( SOLD_ORDER[L] ) > SELL_LIMIT then
      begin
        if L >= RequiedCnt then
           break;
        AddWare(SOLD_ORDER[L], False);
      end;
  
    for L := 0 to RequiedCnt do
     if L < AvaiableCnt then
       TryBuyItem(AvaiableWares[L], RequiredWares[L])
     else
       break;
  end;
  
  
  
negative.code:     Exit;
  
    RequiedCnt := 0;
    SetLength(RequiredWares,4);
    with gHands[fOwner].Stats do
    begin
      // Gold
      if (GetHouseQty(ht_Metallurgists) = 0)
         AND (GetWareBalance(wt_Gold) <= LACK_OF_GOLD) then
         AddWare(wt_Gold);
  