diff --git a/main/features.c b/main/features.c
index 474d36317e5ab725e3ae343937cd682d97dd6868..b93375688916f3caa56203ff12486a13e157e5e1 100644
--- a/main/features.c
+++ b/main/features.c
@@ -3245,9 +3245,8 @@ static struct ast_channel *feature_request_and_dial(struct ast_channel *caller,
 
 done:
 	ast_indicate(caller, -1);
-	if (chan && ready) {
-		if (chan->_state == AST_STATE_UP)
-			state = AST_CONTROL_ANSWER;
+	if (chan && (ready || chan->_state == AST_STATE_UP)) {
+		state = AST_CONTROL_ANSWER;
 	} else if (chan) {
 		ast_hangup(chan);
 		chan = NULL;