diff -up ksh-20120801/src/cmd/ksh93/edit/emacs.c.tabfix ksh-20120801/src/cmd/ksh93/edit/emacs.c --- ksh-20120801/src/cmd/ksh93/edit/emacs.c.tabfix 2013-01-04 16:50:21.124706144 +0100 +++ ksh-20120801/src/cmd/ksh93/edit/emacs.c 2013-01-04 16:50:21.150706365 +0100 @@ -1011,9 +1011,10 @@ static int escape(register Emacs_t* ep,r ep->ed->e_tabcount=0; else { + int oldi = i; i=ed_getchar(ep->ed,0); ed_ungetchar(ep->ed,i); - if(isdigit(i)) + if(oldi=='=' && isdigit(i)) ed_ungetchar(ep->ed,ESC); } }