+ $args{'Ticket'} = delete $args{'TicketObj'} if $args{'TicketObj'};
+ $args{'Transaction'} = delete $args{'TransactionObj'} if $args{'TransactionObj'};
+ $args{'Requestor'} = eval { $args{'Ticket'}->Requestors->UserMembersObj->First->Name }
+ if $args{'Ticket'};
+ $args{'rtname'} = RT->Config->Get('rtname');
+ if ( $args{'Ticket'} ) {
+ my $t = $args{'Ticket'}; # avoid memory leak
+ $args{'loc'} = sub { $t->loc(@_) };
+ } else {
+ $args{'loc'} = sub { $self->loc(@_) };
+ }
+
+ foreach my $key ( keys %args ) {
+ next unless ref $args{ $key };
+ next if ref $args{ $key } =~ /^(ARRAY|HASH|SCALAR|CODE)$/;
+ my $val = $args{ $key };
+ $args{ $key } = \$val;
+ }
+
+