In etags.c Scheme_functions, I think the loop while (notinname (*bp)) bp++; will take bp past the '\0' string terminator, because '\0' is a notinname(). I can't spot any obvious ill effect, only that a line of only (define is tagged, perhaps depending on what was on the line before it. In any case doesn't sound good to look into possibly uninitialized parts of the input buffer. (Another helper skip_notinname() to try to be clearer than a double-negative loop :-) 2010-02-19 Kevin Ryde * etags.c (Scheme_functions): Don't go past '\0' terminator. (skip_notinname): New helper.