The attached simplifies the code handling lval_register by exploiting the assumption: /* In a register. Registers are relative to a frame. */ lval_register, i.e., there's always a frame. With just that committed, my PPC results regress. It turns out that the value code was forgetting to propogate the value id. A sequence like: (gdb) up (gdb) set variable u.i = 1 where "u" was in a register in frame #1 would end up trashing the corresponding register in frame #0. committed, Andrew