anchor.diff:    n := ANode;
     if ANode.Prev <> nil then
     begin
  -    result := ANode.Prev;
  -    ANode := ANode.Prev;
  +    result  := ANode.Prev;
  +    ANode   := ANode.Prev;
       while (not ANode.Collapsed) and (ANode.Count > 0) do
       begin
  -      result := ANode.LastSubNode;
  -      aNode := ANode.LastSubNode;
  +      result  := ANode.LastSubNode;
  +      ANode   := ANode.LastSubNode;
       end;
     end
     else
  
positive.code: 
  procedure TfpgTreeview.HandleKeyPress(var keycode: word;
    var shiftstate: TShiftState; var consumed: boolean);
  begin
    inherited HandleKeyPress(keycode, shiftstate, consumed);
  end;
  
  procedure TfpgTreeview.HandleMouseScroll(x, y: integer;
  
negative.code: procedure TfpgTreeview.HandleDoubleClick(x, y: integer; button: word;
    shiftstate: TShiftState);
  begin
    // to setup cursor co-ordinates and handle selection
    HandleLMouseUp(x, y, shiftstate);
    inherited HandleDoubleClick(x, y, button, shiftstate);
    if Selection <> nil then
    begin
      if Selection.Collapsed then
      begin
        Selection.Expand;
        DoExpand(Selection);
      end
      else
        Selection.Collapse;
      RePaint;
    end;
  end;
  
  procedure TfpgTreeview.HandleShow;
  