context test1 { s => { goto lab1; if( ${testnotnull} ) { lab1: NoOp(hello); } else { lab1: MoOp(goodbye); } } 1 => { lab1: NoOp(This one is OK.); } } macro endcall5(type) { switch(${type}) { case out: if(${testnotnull}) { NoOp(whoosh); goto ptr1 ; // <-- goto call to valid label } case in: ptr1: // The First label is the valid one... if(${testnotnull}) { NoOp(wow); goto ptr1 ; // <-- goto call to valid label } Noop(esac) ; } if(${testnotnull}) { goto ptr1; } switch(${type}) { case out: switch(${type}) { case in: if(${testnotnull}) { ptr1: // <-- duplicate label (macros are about the equiv of an extension) Softhangup(${CHANNEL}); break ; } Noop(esac) ; } } return; }