diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index af6454a90abcbc38eeed5ce5a9c7f1cec87d6283..4a9bf980f086966dda9a18a01783e4e26f62df53 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -2918,6 +2918,7 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast)
 				} else 
 					ast_log(LOG_DEBUG, "Sent deferred digit string: %s\n", p->dop.dialstr);
 				p->dop.dialstr[0] = '\0';
+				p->dop.op = ZT_DIAL_OP_REPLACE;
 				break;
 			case SIG_FEATDMF:
 			case SIG_FEATB:
@@ -4059,6 +4060,8 @@ static void *ss_thread(void *data)
 				    (!strcmp(nbridge->type,"Zap")) &&
 				    ISTRUNK(pbridge)) {
 					int func = ZT_FLASH;
+					/* Clear out the dial buffer */
+					p->dop.dialstr[0] = '\0';
 					/* flash hookswitch */
 					if ((ioctl(pbridge->subs[SUB_REAL].zfd,ZT_HOOK,&func) == -1) && (errno != EINPROGRESS)) {
 						ast_log(LOG_WARNING, "Unable to flash external trunk on channel %s: %s\n",