+sub OriginalUser {
+ my $self = shift;
+
+ if (@_) {
+ $self->{'original_user'} = shift;
+ Scalar::Util::weaken($self->{'original_user'})
+ if (ref($self->{'original_user'}) && $self->{'original_user'} == $self );
+ }
+ return ( $self->{'original_user'} || $self->{'user'} );
+}