anchor.diff:        gTerrain.RemField(P)
       else
         gTerrain.SetObject(P, 255);
  -    IsDeleted := True;
  -  end;
  -
  -  if aEraseAll or not IsDeleted then
  -  begin
  -    if gTerrain.Land[P.Y,P.X].TileOverlay = to_Road then
  -      gTerrain.RemRoad(P);
  -    if gTerrain.TileIsCornField(P) or gTerrain.TileIsWineField(P) then
  -      gTerrain.RemField(P);
  -  end;
  +    if not aEraseAll then Exit;
  +  end;
  +
  +  //Delete tile overlay (road/corn/wine)
  +  if gTerrain.Land[P.Y,P.X].TileOverlay = to_Road then
  +    gTerrain.RemRoad(P);
  +  if gTerrain.TileIsCornField(P) or gTerrain.TileIsWineField(P) then
  +    gTerrain.RemField(P);
   end;
   
   
  
positive.code: var House: TKMHouse;
  begin
    Result := False;
    if (aObject <> nil) then
    begin
      if aObject is TKMHouse then
      begin
        House := TKMHouse(aObject);
        if House.Owner <> aOwner then
        begin
          House.OwnerUpdate(aOwner, True);
          gTerrain.SetHouseAreaOwner(House.GetPosition, House.HouseType, aOwner); // Update minimap colors
          Result := True;
        end;
      end
      else if aObject is TKMUnit then
      begin
        if (TKMUnit(aObject).Owner <> aOwner) and (TKMUnit(aObject).Owner <> PLAYER_ANIMAL) then
        begin
          TKMUnit(aObject).OwnerUpdate(aOwner, True);
          Result := True;
        end;
      end else if aObject is TKMUnitGroup then
        if TKMUnitGroup(aObject).Owner <> aOwner then
        begin
          TKMUnitGroup(aObject).OwnerUpdate(aOwner, True);
          Result := True;
        end
    end;
  end;
  
  
  
negative.code: 
  
  //aStageIncrement - stage increment, can be negative
  //aCheckPrevCell - do we check prev cell under the cursor to differ from current cell under the cursor
  procedure TKMMapEditor.UpdateField(aStageIncrement: Integer; aCheckPrevCell: Boolean);
  var
    P: TKMPoint;
  