diff --git a/src/ops.c b/src/ops.c index beab33c15..98bd2d171 100644 --- a/src/ops.c +++ b/src/ops.c @@ -2433,7 +2433,8 @@ swapchar(op_type, pos) pos_T sp = curwin->w_cursor; curwin->w_cursor = *pos; - del_char(FALSE); + /* don't use del_char(), it also removes composing chars */ + del_bytes(utf_ptr2len(ml_get_cursor()), FALSE, FALSE); ins_char(nc); curwin->w_cursor = sp; }