Quite correct, Stretchwicster. Now, there's a bit of strangeness about all this when you are working with strings. Normally, when you pass an argument byval, you have two copies of the actual value, whereas if you pass byref, you have two references to the same copy of the actual value. However, If you pass a string argument byval, you are actually passing the value of the pointer to a string. The pointer, of course, is a reference. As such, if you get a byval string argument, you can use the reference that it represents to alter the values of the characters in the string, and have the changes visible to the calling context.
Bob Rodes