An interesting alternative, particularly for assemblers (such as WAVRASM) which don't support the LOCAL directive, is to pass the label as a parameter to the macro. Yes, I know it is then up to you to make sure you use a different label each time you call the macro. (I also know that WAVRASM is "broken" and will not do forward references in macros.) -- Cheers, Paul B.