--- rxvt-unicode/src/screen.C 2008/11/04 14:34:13 1.314 +++ rxvt-unicode/src/screen.C 2008/11/04 14:38:29 1.315 @@ -1466,11 +1466,18 @@ line->touch (); line->is_longer (0); + // nuke wide char at beginning + if (line->t[screen.cur.col] == NOCHAR) + scr_kill_char (*line, screen.cur.col); + switch (insdel) { case INSERT: line->l = min (line->l + count, ncol); + if (line->t[screen.cur.col] == NOCHAR) + scr_kill_char (*line, screen.cur.col); + for (int col = ncol - 1; (col - count) >= screen.cur.col; col--) { line->t[col] = line->t[col - count]; @@ -1500,6 +1507,10 @@ selection_check (1); screen.cur.col -= count; + // nuke wide char after the end + if (screen.cur.col + count < ncol && line->t[screen.cur.col + count] == NOCHAR) + scr_kill_char (*line, screen.cur.col + count); + scr_blank_line (*line, screen.cur.col, count, rstyle); break;