(Sorry if this has reached PICLIST already, I posted it before but saw no responses) I have this small and completely useless file, which shows a strange MPASM behaviour I stumbled upon while writing a generic RS232 receive macro. list p=16c84 wrong macro error something wrong endm test macro local x,y if y - x != 1 error strange #v(y) #v(x) wrong ; try to remove endif x nop y endm test ; try to remove test end When I assemble its I get Error[101] C:\USERS\DEFAULT\16C84\TRY.ASM 9 : ERROR: (strange 0 0) Error[101] C:\USERS\DEFAULT\16C84\TRY.ASM 4 : ERROR: (something wrong) This is caused by the fact that in pass one all forward labels have the value 0. Indeed the errors disappear when I change the test to y - x != 1 && y - x != 0. But when I remove either one "test" macro call, or the "wrong" macro call both errors disappear! Is this an MPASM bug or can someone explain this?