I always found EXTERNAL ARRAY to be problematic. If you don't put exactly in the right spot, it doesn't work. And, you may have to put it in multiple places. IMO, a much better way is to specify the array PUBLIC is a dummy procedure, but never call dummy. This will cause the compiler to stop complaining while maintaining the variable scoping you want. I usually put the dummy procedure at the end of my Main.prg
PROCEDURE Dummy
PUBLIC ARRAY aPostedMaterials[2]
>In the procedure that uses this array add
>
>EXTERNAL ARRAY aPostedMaterials
>
>This is a compiler error and it can also be safely ignored.
Craig Berntson
MCSD, Microsoft .Net MVP, Grape City Community Influencer