diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index ee02f9021889f5a928befbea2bde4c02289ca1fd..5f5afbd43de1e4a5d08bc4d452c403c766792b02 100644
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -655,7 +655,7 @@ static int agent_indicate(struct ast_channel *ast, int condition, const void *da
 	struct agent_pvt *p = ast->tech_pvt;
 	int res = -1;
 	ast_mutex_lock(&p->lock);
-	if (p->chan)
+	if (p->chan && !ast_check_hangup(p->chan))
 		res = p->chan->tech->indicate ? p->chan->tech->indicate(p->chan, condition, data, datalen) : -1;
 	else
 		res = 0;