>I'm a little out to lunch here. Your point is that *objects* are always passed by reference *regardless*.
>
>i.e. You can't pass object by value.
>
You never pass an object, you pass an object reference, which can be by value or by reference. To actually pass an object by value, you'd have to create a copy of the object in the calling code and destroy the created object copy on return.