Salut Alain, Tue, 17 Apr 2001 01:13:13 +0200, you wrote: > LOCAL FN initRec ... > END FN = myRec 'returning the record ... > theRec = FN initRec ... > And now, the real question is why does it work? What I would like to say is emotional. IT AUGHT TO WORK. At least it works for me today. The execution of FN initRec does not of itself perhaps do more than fill an address (?) register with the address of the record to pass (you called it myRec, local to FN initRec). That is corroborated by the fact that deleting "theRec = " causes no problems except that the record does not get passed. So it's the part "theRec = " that causes the record to be passed successfully. Incidentally, there is some sort of blockmove involved. It is not a matter of dangerously repointing testRec onto the part of the stack condemned by FN initRec completing. @theRec stays the same. So far so good. It seems we can pass records back from a FN by this method. However I WANT BETTER, namely I want to avoid the (RELATIVELY SLOW) hidden blockmove so that I can do timecritical work where a FN MyFunct and a function it calls FN MySubFunct share a specified bunch of stack variables arranged into a structure and DIM'ed in FN MyFunct. Anyone have that working smoothly?? Cheers Laurent S.