anchor.diff:        // There is another problem...
         else
           Planner.RemovePlan(aHT, Loc);
  -    end;
  -    //else
  -    //  Planner.RemovePlan(aHT, Loc);
  +    end
  +    else
  +      Output := cs_RemoveTreeProcedure; // Remove tree procedure is active
     end
     else
     begin
  
positive.code: 
    BASIC_HOUSES: TSetOfHouseType = [ht_School, ht_Barracks, ht_Inn, ht_MarketPlace, ht_Store];
    //BUILD_WARE: TSetOfWare = [wt_GoldOre, wt_Coal, wt_Gold, wt_Stone, wt_Trunk, wt_Wood];
    FOOD_WARE: TSetOfWare = [wt_Corn, wt_Flour, wt_Bread, wt_Pig, wt_Sausages, wt_Wine, wt_Fish];
    WEAPON_WARE: TSetOfWare = [wt_Skin, wt_Leather, wt_Horse, wt_IronOre, wt_Coal, wt_Steel, wt_Axe, wt_Bow, wt_Pike, wt_Armor, wt_Shield, wt_Sword, wt_Arbalet, wt_Hallebard, wt_MetalShield, wt_MetalArmor];
    BUILD_ORDER_WARE: array[0..5] of TKMWareType = (wt_Stone, wt_Gold, wt_GoldOre, wt_Coal, wt_Trunk, wt_Wood);
  var
    StoneShortage, WoodShortage, TrunkShortage, GoldShortage: Boolean;
  
negative.code:     begin
        if (WareOrder[I] = wt_None) then
          break;
        if (RequiredHouses[  PRODUCTION[ WareOrder[I] ]  ] <= 0) then // wt_Leather and wt_Pig require the same building so avoid to place 2 houses at once
          continue;
        case AddToConstruction(PRODUCTION[ WareOrder[I] ]) of
          cs_NoNodeAvailable: break;
          cs_HouseReservation, cs_RemoveTreeProcedure: Output := True;
  