Arguments to a function slot (via send) were getting evaluated in a environment that contained the frame... so references to a name that appeared in the frame were using the frame slots rather than the lexical environment.