As a side note you can only ByRef one "level" i.e. what you are passing to a method must be a local variable otherwise strangeness occurs