Index: apps/app_dial.c =================================================================== --- apps/app_dial.c (revision 242606) +++ apps/app_dial.c (working copy) @@ -2088,7 +2088,7 @@ if (ast_test_flag64(&opts, OPT_CALLEE_GOSUB) && !ast_strlen_zero(opt_args[OPT_ARG_CALLEE_GOSUB])) { struct ast_app *theapp; - const char *gosub_result; + const char *gosub_result, *gosub_retval; char *gosub_args, *gosub_argstart; int res9 = -1; @@ -2153,6 +2153,9 @@ if (!res9 && (gosub_result = pbx_builtin_getvar_helper(peer, "GOSUB_RESULT"))) { char *gosub_transfer_dest; + if ((gosub_retval = pbx_builtin_getvar_helper(peer, "GOSUB_RETVAL"))) + pbx_builtin_setvar_helper(chan, "GOSUB_RETVAL", gosub_retval); + if (!strcasecmp(gosub_result, "BUSY")) { ast_copy_string(pa.status, gosub_result, sizeof(pa.status)); ast_set_flag64(peerflags, OPT_GO_ON);