diff -Naur lua-5.1.4/src/llex.c my-lua-changes/src/llex.c --- lua-5.1.4/src/llex.c 2007-12-27 07:02:25.000000000 -0600 +++ my-lua-changes/src/llex.c 2009-04-06 12:37:07.496444467 -0500 @@ -190,10 +190,14 @@ /* LUA_NUMBER */ static void read_numeral (LexState *ls, SemInfo *seminfo) { - lua_assert(isdigit(ls->current)); + lua_assert(isdigit(ls->current) || ls->current == '_'); do { - save_and_next(ls); - } while (isdigit(ls->current) || ls->current == '.'); + if(ls->current == '_') { + next(ls); + } else { + save_and_next(ls); + } + } while (isdigit(ls->current) || ls->current == '.' || ls->current == '_'); if (check_next(ls, "Ee")) /* `E'? */ check_next(ls, "+-"); /* optional exponent sign */ while (isalnum(ls->current) || ls->current == '_')