diff --git a/channels/chan_unistim.c b/channels/chan_unistim.c
index 30f4395c3eb93b645db5f9bd57d27b9f9e087f3c..127bfed45fee923a52437054440a9ca61864e924 100644
--- a/channels/chan_unistim.c
+++ b/channels/chan_unistim.c
@@ -2473,7 +2473,7 @@ static int unistim_do_senddigit(struct unistimsession *pte, char digit)
 	struct ast_frame f = { 0, };
 	struct unistim_subchannel *sub;
 	sub = pte->device->lines->subs[SUB_REAL];
-	if (!sub->owner) {
+	if (!sub->owner || sub->alreadygone) {
 		ast_log(LOG_WARNING, "Unable to find subchannel in dtmf senddigit\n");
 		return -1;
 	}
@@ -4223,8 +4223,8 @@ static int unistim_senddigit_end(struct ast_channel *ast, char digit, unsigned i
 
 	sub = pte->device->lines->subs[SUB_REAL];
 
-	if (!sub->owner) {
-		ast_log(LOG_WARNING, "Unable to find subchannel in dtmf senddigiti_end\n");
+	if (!sub->owner || sub->alreadygone) {
+		ast_log(LOG_WARNING, "Unable to find subchannel in dtmf senddigit_end\n");
 		return -1;
 	}