The local declaration *does* work for things like this: (%i2) [sign(x),block([x], (local(x), sign(1/x))), sign(x)]; (%o2) [pnz,pn,pnz] (%i3) [sign(x),block([x], sign(1/x)), sign(x)]; (%o3) [pnz,pn,pn] --Barton