anchor.diff:      LayerOrder: array of TKMTileMaskInfo;
       MaskType: TKMTileMaskType;
     begin
  -    TileNodeTerKinds := GetTileCornersTerrainKinds(KMPoint(X,Y), fUseTempLand, False, True);
  -
  -    for I := 0 to 3 do
  -      if TileNodeTerKinds[I] = tkCustom then  // Do not set masks for tiles with at least 1 custom real corner
  -        Exit;
  -
  -    TileOwnTerKinds := GetTileCornersTerrainKinds(KMPoint(X,Y), fUseTempLand, True);
  +    TileNodeTerKinds := GetTileLandNodeTKinds(KMPoint(X,Y));
  +
  +      for I := 0 to 3 do
  +        if TileNodeTerKinds[I] = tkCustom then  // Do not set masks for tiles with at least 1 custom real corner
  +          Exit;
  +
  +    TileOwnTerKinds := GetTileOwnCornersTKinds(KMPoint(X,Y));
       AroundTerKinds := GetTerKindsAround(KMPoint(X,Y));
   
       for I := 0 to 3 do
  
positive.code:     fMapXc, fMapYc: Integer; //Cursor position cell
  
      function BrushAreaTerKindContains(aCell: TKMPoint): Boolean;
      function GetTileCornersTerrainKinds(aCell: TKMPoint; aUseTempLand: Boolean; aUseOnlyTileOwnTK: Boolean = False; aUseOnlyNodeTK: Boolean = False): TKMTerrainKindsArray;
      procedure CheckpointToTerrain;
      procedure BrushTile(const X, Y: Integer);
      procedure BrushTerrainTile(const X, Y: Integer; aTerKind: TKMTerrainKind);
  
negative.code:   Tile: TKMTerrainTileBasic;
  
  begin
    Assert(not (aGetOnlyTileCornersTK and aGetOnlyLandNodeTK)); //At least 1 of those parameters should be False
  
    SetLength(Result, 4);
  
    //Init with tkCustom
    for I := 0 to 3 do
    begin
      TerKindFound[I] := False;
      Result[I] := tkCustom;
    end;
  
    //Get tile corners TKinds based on LandTerKind
    if not aGetOnlyTileCornersTK then
    begin
      CheckTerKind(aCell.X,   aCell.Y,   0);
      CheckTerKind(aCell.X+1, aCell.Y,   1);
  