--- res/res_features.c.orig 2006-01-25 19:31:02.999788159 -0600 +++ res/res_features.c 2006-01-25 19:31:09.279945595 -0600 @@ -686,8 +686,8 @@ transferer = chan; transferee = peer; } - if (!(transferer_real_context=pbx_builtin_getvar_helper(transferee, "TRANSFER_CONTEXT")) && - !(transferer_real_context=pbx_builtin_getvar_helper(transferer, "TRANSFER_CONTEXT"))) { + if (!(transferer_real_context=pbx_builtin_getvar_helper(transferer, "TRANSFER_CONTEXT")) && + !(transferer_real_context=pbx_builtin_getvar_helper(transferee, "TRANSFER_CONTEXT"))) { /* Use the non-macro context to transfer the call */ if (!ast_strlen_zero(transferer->macrocontext)) transferer_real_context = transferer->macrocontext; @@ -1090,6 +1090,7 @@ if ((chan = ast_request(type, format, data, &cause))) { ast_set_callerid(chan, cid_num, cid_name, cid_num); ast_channel_inherit_variables(caller, chan); + pbx_builtin_setvar_helper(chan, "TRANSFERERNAME", caller->name); if (!ast_call(chan, data, timeout)) { struct timeval started; int x, len = 0;