--- rxvt-unicode/src/screen.C 2013/03/30 08:47:06 1.442 +++ rxvt-unicode/src/screen.C 2013/04/02 21:03:35 1.444 @@ -2680,8 +2680,8 @@ rxvt_term::selection_changed () NOTHROW { line_t &r1 = ROW (selection.beg.row); - while (selection.beg.col > 0 && r1.t [selection.beg.col] == NOCHAR) - --selection.beg.col; + while (selection.beg.col < r1.l && r1.t [selection.beg.col] == NOCHAR) + ++selection.beg.col; line_t &r2 = ROW (selection.end.row); while (selection.end.col < r2.l && r2.t [selection.end.col] == NOCHAR) @@ -3074,14 +3074,6 @@ if (dirn == DN) col++; /* put us on one past the end */ - else - { - // if the delimiter on the left has width > 1 col points to the - // first NOCHAR in the delimiter cell and so we must move it to the - // beginning of the next cell. - while (ROW(row).t[col] == NOCHAR) - col++; - } /* Poke the values back in */ ret->row = row;