anchor.diff:    begin
       if (Y < HeaderHeight + cRect.Top)  then
       begin
  -      cLeft := cRect.Left - FHScrollBar.Position;
  +      LastColumn := nil;
  +      HeaderX := FHScrollBar.Position - 2 + x;
  +
  +      curLeft := 0;
         for I := 0 to FColumns.Count-1 do
         begin
           Column := FColumns.Column[I];
           if Column.Visible then
           begin
  -          cRight := cLeft + Column.Width-1;
  -          if (X <= cRight) and (X >= cLeft) then
  +          curRight := curLeft + Column.Width-1;
  +          if (HeaderX <= curRight) and (HeaderX >= curLeft) then
             begin
  -            if (MouseCursor = mcSizeEW) and Column.Resizable then
  -              FResizingColumn := Column
  +            if (MouseCursor = mcSizeEW) then
  +            begin
  +              if Column.Resizable and (curRight - HeaderX < 5) then
  +                FResizingColumn := Column
  +              else
  +                if Assigned(LastColumn) and LastColumn.Resizable and (HeaderX - curLeft < 5) then
  +                  FResizingColumn := LastColumn
  +            end
               else // only perform a mouse click if we aren't resizing
                 DoColumnClick(Column, 1);
             end;
  -          Inc(cLeft, Column.Width);
  +          Inc(curLeft, Column.Width);
           end;
  +        LastColumn := Column;
         end;
       end;
  +    if not Assigned(FResizingColumn) and Assigned(LastColumn) and LastColumn.Resizable then
  +      if (HeaderX - curLeft) < 5 then
  +        FResizingColumn := LastColumn;
       Inc(cRect.Top, HeaderHeight);
     end;
     
  
positive.code:   Shiftstate: TShiftState);
  var
    I: Integer;
    cLeft: Integer;
    Column: TfpgLVColumn;
  begin
    cLeft := 2;
  
    for I := 0 to FColumns.Count-1 do
    begin
      Column := FColumns.Column[I];
      if not Column.Visible then
        Continue;
      if Column.Resizable then
      begin
        if (FResizingColumn <> nil) and (FResizingColumn = Column) then
        begin
          FResizingColumn.Width :=  (x + FHScrollBar.Position)- cLeft;
          DoRepaint;
          Break;
        end
        else begin
          if ((X + FHScrollBar.Position) < cLeft + Column.Width ) and ((cLeft + Column.Width) - (X + FHScrollBar.Position)< 3) then
          begin
            MouseCursor := mcSizeEW;
            Break;
          end
          else
            if MouseCursor <> mcDefault then
              MouseCursor := mcDefault;
        end;
      end;
      Inc(cLeft, Column.Width);
    end;
  end;
  
  procedure TfpgListView.HandleMouseScroll(x, y: integer;
  
negative.code:   Item: TfpgLVItem;
    IndexOfItem: Integer;
    cRect: TfpgRect;
    curLeft, curRight: Integer;
    I: Integer;
    Column: TfpgLVColumn;
    LastColumn: TfpgLVColumn;
    HeaderX: Integer;
  begin
    inherited HandleLMouseDown(x, y, shiftstate);
    
  