diff --git a/main/app.c b/main/app.c
index 0ea5cefe6961ea559453ed13e534f35a1c10ba76..eb3fa4f024113617ffec53d37135b671a1135727 100644
--- a/main/app.c
+++ b/main/app.c
@@ -299,8 +299,12 @@ int ast_dtmf_stream(struct ast_channel *chan, struct ast_channel *peer, const ch
 		res = ast_waitfor(chan, 100);
 
 	/* ast_waitfor will return the number of remaining ms on success */
-	if (res < 0)
+	if (res < 0) {
+		if (peer) {
+			ast_autoservice_stop(peer);
+		}
 		return res;
+	}
 
 	if (ast_opt_transmit_silence) {
 		silgen = ast_channel_start_silence_generator(chan);