it fails of course for more than 255 chrs
Of course, since the macro only uses the low byte of R4 to index the array. That would also make it fail when using a constant >255.

In any case, the "example" posted in the first place had a BYTE sized variable with a value of 40 and everything we've seen this far is that it should (and ideed does, for 18F at least) work. I think I compiled for 16F628 when I looked at the .lst yesterday.

flotulopex,
You're going to have to post code that we can just compile, assemble and program into a chip that shows the problem.