Hey, an easy one. :-) >LOCAL FN receiveRect(@rectAddr&) 'Takes address of var passed >'do something >END FN > >FN receiveRect(t%) When you pass an address, it has to be passed as a long integer. You'll want to do something like this: local fn receiveRect(@rectAddr&) dim bottom% rectAddr&.top%=30 bottom%=rectAddr&.bottom% print rectAddr&.right% etc. end fn local fn doRect dim myRect.8 call setrect(myRect,0,0,100,100) fn receiveRect(myRect) end fn fn doRect HTH ____________ wave (Toronto, Canada) Much better at "OOPS!" programming than OOP programming.