Before you get nervous, you probably already know this. When passing a reference type ByVal, it's really the reference that is passed by value. Somehow, I keep running into developers that are surprised to find this out. This post is a short article that explains the gory details. Just for fun, the example uses a beer bottle as the object being passed. Please no comments on my choice of brand!