It's the problem that Andreas Schwab noticed. p-exp.y says: char *uptokstart = (char *)malloc(namelen+1); p-exp.c, after substitution, says: char *uptokstart = (char *xmalloc(namelen+1); I'll go ahead and check in a patch unless someone beats me to it. Michael