>Mark,
>
>FWIW, I wouldn't write a function that actually required a WITH to be in effect for the code to work.
I'm still amazed that it works - and I'd agree it would be very unhealthy to use. Such a function would break as soon as it's called outside of a with/endwith block. It's so much easier to pass an object and have it work on the passed object, even if it had to issue its own with/endwith on it. And it's also cleaner and easier to follow (though it's equally hard to document - the procedure knows nothing about the passed object at design time).