Since the full LOCAL FN that you posted assembles (by itself) without error, the cause of the error must still lie elsewhere in your program. I'll take a small bet that you have an earlier FN which uses labels @3 and so on. The problem is then that the assembler 1. remembers @3 from your earlier FN 2. attempts to plant a branch to that label 3. finds that it is more thsn the range of a short branch (blt.s) 4. complains. > > `@1 > ` tst.l D0 > ` blt.s @3 > The solution is to use unique labels within each FN. Some assemblers (but not FB) support "local labels" which can be duplicated; your code would work with such an assembler. Robert