diff --git a/channel.c b/channel.c index 5aacefd21f..011bdaef3e 100644 --- a/channel.c +++ b/channel.c @@ -2392,7 +2392,8 @@ struct ast_channel *__ast_request_and_dial(const char *type, int format, void *d ast_set_callerid(chan, cid_num, cid_name, cid_num); if (!ast_call(chan, data, 0)) { - while(timeout && (chan->_state != AST_STATE_UP)) { + res = 1; /* in case chan->_state is already AST_STATE_UP */ + while (timeout && (chan->_state != AST_STATE_UP)) { res = ast_waitfor(chan, timeout); if (res < 0) { /* Something not cool, or timed out */