>'setup fake data for demo purposes >FOR d% = 0 to _maxRecs-1 > gtestRecH.testFirstEntry%(d%) = d% > gtestRecH.testSecondEntry& = d% > gtestRecH.testThirdEntry$ = LEFT$(STR$(d%),24)) >NEXT Thanks for the excellent explanation. BTW, if you like to save typing, here's a technique that Staz sometimes uses in their code snippets: DIM a%,b&,25 c$ LOCAL FN TestRec(recAddr&) a%;_testRec=recAddr& ' copy record to the above location print a%,b&,c$ END FN It takes longer, but I imagine the extra time wouldn't be noticeable if your loop isn't too large. It's also good for putting strings in records, since you don't have to go back and automatically insert the length byte yourself. ____________ wave (Toronto, Canada)