anchor.diff:    TAbCustomListView = class(TCustomListView)
     protected {private}
       FArchive : TAbBaseBrowser;
  +    FDefHeaderProc : TWindowProcPtr;
       FFlatList: Boolean;
  +    FHeaderHandle : HWND;
       FHeaderImages : TImageList;
  +    FHeaderInstance : Pointer;
  +    FInUpdateSortArrows: Boolean;
       FPath : string;
       FSortAscending : Boolean;
       FSortColIndex : Integer;
  
positive.code: { -------------------------------------------------------------------------- }
  destructor TAbCustomListView.Destroy;
  begin
    if FSortUpBmp <> 0 then
      DeleteObject(FSortUpBmp);
    if FSortDownBmp <> 0 then
  
negative.code: end;
  { -------------------------------------------------------------------------- }
  procedure TAbCustomListView.UpdateSortArrow;
  var
    i: Integer;
    Item: THDITEM;
  begin
    if not HandleAllocated then
      Exit;
    FInUpdateSortArrows := True;
    try
      for i := 0 to Columns.Count - 1 do begin
        FillChar(Item, SizeOf(Item), 0);
        Item.Mask := HDI_FORMAT;
        if not IsComCtl32Version6 then
          Item.Mask := Item.Mask or HDI_BITMAP;
        Header_GetItem(FHeaderHandle, Columns[i].Index, Item);
        // Add sort arrow to requested column
        if TAbViewColumn(Columns[i].Tag) = FSortColumn then begin
          FSortColIndex := i - 1;
          if IsComCtl32Version6 then begin
            Item.fmt := Item.fmt and not (HDF_SORTDOWN or HDF_SORTUP);
            if FSortAscending then
              Item.fmt := Item.fmt or HDF_SORTUP
            else
              Item.fmt := Item.fmt or HDF_SORTDOWN;
          end
          else begin
            Item.fmt := Item.fmt or HDF_BITMAP or HDF_BITMAP_ON_RIGHT;
            if FSortAscending then
              Item.hbm := FSortUpBmp
            else
              Item.hbm := FSortDownBmp;
          end;
        end
        // Remove sort arrow from other columns
        else begin
          if IsComCtl32Version6 then
            Item.fmt := Item.fmt and not (HDF_SORTDOWN or HDF_SORTUP)
          else begin
            Item.Mask := Item.Mask and not HDI_BITMAP;
            Item.fmt := Item.fmt and not (HDF_BITMAP OR HDF_BITMAP_ON_RIGHT);
          end;
        end;
        Header_SetItem(FHeaderHandle, Columns[i].Index, Item);
      end;
    finally
      FInUpdateSortArrows := False;
    end;
  end;
  { -------------------------------------------------------------------------- }
  