diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index fb550f030bdffdf9ee1bceca8d316fed43357f1f..95fef3cd062b9cfcc4a015150587dba1ecd0a2a6 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -4318,6 +4318,8 @@ struct ast_frame  *zt_read(struct ast_channel *ast)
 			p->subs[index].f.frametype = AST_FRAME_CONTROL;
 			p->subs[index].f.subclass = AST_CONTROL_ANSWER;
 			f = &p->subs[index].f;
+			/* Reset confirmanswer so DTMF's will behave properly for the duration of the call */
+			p->confirmanswer = 0;
 		} else if (p->callwaitcas) {
 			if ((f->subclass == 'A') || (f->subclass == 'D')) {
 				ast_log(LOG_DEBUG, "Got some DTMF, but it's for the CAS\n");