Cyrill is pointing out that the assembler is finding the redefined 'L' label which causes an error that trumps your user-defined error. This is what the assembler should do. If you commented out either DEF1 or DEF2, no error should be displayed. If you changed your labels to to different names like Cyrill suggested, and kept DEF1 and DEF2 defined then your error should be shown. This is all expected behaviour.