Bill, As an aside, I notice you have a dup() function in WeakRef. When would you ever want to dup the WeakRef? If anything, dup() should just return 'this'. -Steve