diff --git a/channel.c b/channel.c
index c961f575c78a1d4254e8b34e6302b45f1984cb73..501baa8214e996ee7bf65e15a5e6764ca4eea310 100644
--- a/channel.c
+++ b/channel.c
@@ -2184,7 +2184,8 @@ static int do_senddigit(struct ast_channel *chan, char digit)
 
 	if (chan->tech->send_digit)
 		res = chan->tech->send_digit(chan, digit);
-	if (!chan->tech->send_digit || res) {
+	if (!(chan->tech->send_digit && chan->tech->send_digit_begin) ||
+	    res) {
 		/*
 		 * Device does not support DTMF tones, lets fake
 		 * it by doing our own generation. (PM2002)