diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 7fce983e44452c6441d0390f87238032e95c9a61..20e1fc4798f50390fb5c34c3fef60397d33333bb 100644
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -595,7 +595,9 @@ static int agent_digit_begin(struct ast_channel *ast, char digit)
 {
 	struct agent_pvt *p = ast->tech_pvt;
 	ast_mutex_lock(&p->lock);
-	ast_senddigit_begin(p->chan, digit);
+	if (p->chan) {
+		ast_senddigit_begin(p->chan, digit);
+	}
 	ast_mutex_unlock(&p->lock);
 	return 0;
 }
@@ -604,7 +606,9 @@ static int agent_digit_end(struct ast_channel *ast, char digit, unsigned int dur
 {
 	struct agent_pvt *p = ast->tech_pvt;
 	ast_mutex_lock(&p->lock);
-	ast_senddigit_end(p->chan, digit, duration);
+	if (p->chan) {
+		ast_senddigit_end(p->chan, digit, duration);
+	}
 	ast_mutex_unlock(&p->lock);
 	return 0;
 }