--- toke.c.orig 2005-10-18 19:47:57.000000000 +0100 +++ toke.c 2005-10-18 20:16:52.000000000 +0100 @@ -3167,11 +3167,11 @@ case '*': if (PL_expect != XOPERATOR) { - s = scan_ident(s, PL_bufend, PL_tokenbuf, sizeof PL_tokenbuf, TRUE); - PL_expect = XOPERATOR; - force_ident(PL_tokenbuf, '*'); - if (!*PL_tokenbuf) + PL_tokenbuf[0] = '*'; + s = scan_ident(s, PL_bufend, PL_tokenbuf + 1, sizeof PL_tokenbuf - 1, TRUE); + if (!PL_tokenbuf[1]) PREREF('*'); + PL_pending_ident = '*'; TERM('*'); } s++;