Oops--opsubst is broken: (%i1) opsubst(f,g,g(g)); apply: found opsubst evaluates to true where a function was expected. I haven't looked to see if opsubst & subst share code.... --Barton