diff --git a/res/res_features.c b/res/res_features.c
index 88958807a3791cf25f88f366ffcb6e9ed8ac6594..3f74296e551f4b6fd6a62396241e5545cad5701d 100644
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -1625,6 +1625,13 @@ static struct ast_channel *ast_feature_request_and_dial(struct ast_channel *call
 							f = NULL;
 							ready=1;
 							break;
+						} else if (f->subclass == -1) {
+							if (option_verbose > 2)
+								ast_verbose( VERBOSE_PREFIX_3 "%s stopped sounds\n", chan->name);
+							ast_indicate(caller, -1);
+							ast_frfree(f);
+							f = NULL;
+							break;
 						} else {
 							ast_log(LOG_NOTICE, "Don't know what to do about control frame: %d\n", f->subclass);
 						}