Sorry, my diagnosis was incorrect. This is not an evaluation problem, simply a list-of-arguments fl(a1,a2,a3) vs. argument-list f([a1,a2,a3]) problem. As Andrej says, the solution is very simple: apply(f,[a1,a2,a3]) == f(a1,a2,a3) buildq is a handy function for macros, but I wouldn't recommend its use elsewhere. -s