--- a/src/cmd/ksh93/edit/completion.c 2010-10-28 15:25:18.852285070 +0530 +++ b/src/cmd/ksh93/edit/completion.c 2010-10-28 15:32:08.475284704 +0530 @@ -138,10 +138,15 @@ static char *find_begin(char outbuff[], if((c= mbchar(cp)) , c!=dot && !isaname(c)) break; } - if(cp>=last && c!= '}') + if(cp>=last) { - *type='$'; - return(++xp); + if(c==dot || isaname(c)) + { + *type='$'; + return(++xp); + } + if(c!='}') + bp = cp; } } else if(c=='(')