Thanks Russ. With your last example, %macro test(b,a=300)/parmbuff; if a user invokes it like %test(200,q=100) is there any way to make it throw "ERROR: The keyword parameter Q was not defined with the macro"? So far I haven't found one, which means if I turn on the parmbuff option as a macro developer, I become responsible for doing a lot more validation of user input.