--- rxvt-unicode/src/screen.C 2010/10/15 20:52:15 1.352 +++ rxvt-unicode/src/screen.C 2010/10/15 21:13:44 1.353 @@ -919,11 +919,10 @@ } // nuke the character at this position, if required - if (expect_false ( - line->t[screen.cur.col] == NOCHAR - || (screen.cur.col < ncol - 1 - && line->t[screen.cur.col + 1] == NOCHAR) - )) + // due to wonderful coincidents everywehere else in this loop + // we never have to check for overwriting a wide char itself, + // only it's tail. + if (expect_false (line->t[screen.cur.col] == NOCHAR)) scr_kill_char (*line, screen.cur.col); line->touch ();