This code :
978 if ((ocell == sel_cell_end) || 979 (tabular->column_of_cell(ocell)>tabular->column_of_cell(actcell))) 980 setSelection(start, tabular->GetCellAbove(sel_cell_end)); 981 else 982 setSelection(start, tabular->GetLastCellAbove(sel_cell_end)); isn't good enough. Think : =|a|d|=| =|b | =|=| |c| If I select from c to d, then even though cell b protudes, I end up at d, with b unselected. It should check all cells all the way to the end of the selection, not just (tabular->column_of_cell(ocell)>tabular->column_of_cell(actcell))) thanks john -- "Faced with the prospect of rereading this book, I would rather have my brains ripped out by a plastic fork." - Charles Cooper on "Business at the Speed of Thought"