Hi, Fausto!
I also can't find any forbidden command in your code! The only idea is: What about the &-operator?
BTW: Have you tested your code running under normal vfp runtime library? May be this is a way to use error handling to figure out the wrong line!
An additional hint about &-operator: In a lot of cases it isn't necessary to use &-operator, use the EVAL() function or name substitution instead for a better performance!
Here are some samples:
+++++
llcerrar = not USED("&tctable")
* better:
llcerrar = not USED( tctable )
+++++
SELECT * FROM &tctable INTO CURSOR curtmp
* better:
SELECT * FROM ( tctable ) INTO CURSOR curtmp
+++++
lcdato = ALLTRIM(&lccampo)
* better:
lcdato = ALLTRIM( EVAL( lccampo ) )
+++++
&xyz = This.WhatEver
* better:
STORE This.WhatEver TO ( xyz )
SeBaFlu