diff --git a/apps/app_speech_utils.c b/apps/app_speech_utils.c
index 8b1194c397fb671a904013e4e7a9e5346bf027f8..94c48668f7b939273481cc8d2ab3f0ff85e786f3 100644
--- a/apps/app_speech_utils.c
+++ b/apps/app_speech_utils.c
@@ -512,6 +512,12 @@ static int speech_background(struct ast_channel *chan, void *data)
                 return -1;
         }
 
+	/* If channel is not already answered, then answer it */
+	if (chan->_state != AST_STATE_UP && ast_answer(chan)) {
+		LOCAL_USER_REMOVE(u);
+		return -1;
+	}
+
         /* Record old read format */
         oldreadformat = chan->readformat;