diff -u -r asterisk-1.4.28-untouched/main/pbx.c asterisk-1.4.28/main/pbx.c --- asterisk-1.4.28-untouched/main/pbx.c 2009-12-01 17:14:31.000000000 -0400 +++ asterisk-1.4.28/main/pbx.c 2010-01-07 13:15:36.000000000 -0400 @@ -5768,7 +5768,7 @@ * gone immediately to the "i" extension, but will now need to wait for a * timeout. */ - if ((exten[0] = res) && !ast_matchmore_extension(chan, args.context, exten, 1, chan->cid.cid_num)) { + if ((res != -1) && (exten[0] = res) && !ast_matchmore_extension(chan, args.context, exten, 1, chan->cid.cid_num)) { snprintf(chan->exten, sizeof(chan->exten), "%c", res); ast_copy_string(chan->context, args.context, sizeof(chan->context)); chan->priority = 0;