Ian, you are getting there. If you want a label in a macro that gets repeated in your program, you must declare the label as a LOCAL to that macro. LCD_TX MACRO LOCAL rotate ;this label is for this macro, macro can be used many times IFDEF DEBUG . . rotate bsf PORTB,CH ;***Initialise the data port. . . goto rotate Hope this helps Quentin -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu