anchor.diff:  end;
   
   
  -procedure TKMPointList.Delete(aIndex:Integer);
  +procedure TKMPointList.Delete(aIndex: Integer);
   begin
     if not InRange(aIndex, 0, Count-1) then Exit;
     if (aIndex <> fCount - 1) then
  
positive.code:     procedure Copy(aSrc: TKMPointList);
      procedure Add(aLoc: TKMPoint);
      function  Remove(aLoc: TKMPoint): Integer; virtual;
      procedure Delete(aIndex: Integer);
      procedure Insert(ID: Integer; aLoc: TKMPoint);
      function  GetRandom(out Point: TKMPoint): Boolean;
      function  GetClosest(aLoc: TKMPoint; out Point: TKMPoint): Boolean;
  
negative.code:   begin
      Move(Tag[Result+1], Tag[Result], SizeOf(Tag[Result]) * (fCount - Result));
      Move(Tag2[Result+1], Tag2[Result], SizeOf(Tag2[Result]) * (fCount - Result));
    end;
  end;
  
  
  procedure TKMPointTagList.Delete(aIndex: Integer);
  begin
    if not InRange(aIndex, 0, Count-1) then Exit;
  
    inherited Delete(aIndex);
  
    //Note that fCount is already decreased by 1
    if (aIndex <> fCount) then
    begin
      Move(Tag[aIndex+1], Tag[aIndex], SizeOf(Tag[aIndex]) * (fCount - aIndex));
      Move(Tag2[aIndex+1], Tag2[aIndex], SizeOf(Tag2[aIndex]) * (fCount - aIndex));
    end;
  end;
  
  