Fix off-by-one misbehavior of Ctrl-Left and Alt-Backspace. diff -Naurdp mc-4.6.1.orig/src/widget.c mc-4.6.1/src/widget.c --- mc-4.6.1.orig/src/widget.c 2005-09-06 16:00:00.000000000 +0200 +++ mc-4.6.1/src/widget.c 2005-09-06 17:00:00.000000000 +0200 @@ -1385,7 +1385,7 @@ backward_word (WInput *in) memset (&mbs, 0, sizeof (mbs)); while (in->point > 0) { wchar_t c; - char *p = in->buffer + charpos(in,in->point); + char *p = in->buffer + charpos(in,in->point-1); size_t res = mbrtowc(&c, p, strlen(p), &mbs); if (*p && (res <= 0 || !(iswspace (c) || iswpunct (c)))) break; @@ -1396,7 +1396,7 @@ backward_word (WInput *in) while (in->point > 0) { wchar_t c; - char *p = in->buffer + charpos(in,in->point); + char *p = in->buffer + charpos(in,in->point-1); size_t res = mbrtowc(&c, p, strlen(p), &mbs); if (*p && (res <= 0 || !iswalnum (c))) break;