diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index b37cc7a8f772be4249700902e24cd0818fab7d17..05e062336a44c6dde5fb342bbe5833814b5c2162 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -1086,6 +1086,7 @@ static int zt_digit_end(struct ast_channel *chan, char digit)
 	struct zt_pvt *pvt;
 	int res = 0;
 	int index;
+	int x;
 	
 	pvt = chan->tech_pvt;
 
@@ -1103,8 +1104,9 @@ static int zt_digit_end(struct ast_channel *chan, char digit)
 #endif
 
 	if (pvt->begindigit) {
+		x = -1;
 		ast_log(LOG_DEBUG, "Ending VLDTMF digit '%c'\n", digit);
-		res = ioctl(pvt->subs[SUB_REAL].zfd, ZT_SENDTONE, -1);
+		res = ioctl(pvt->subs[SUB_REAL].zfd, ZT_SENDTONE, &x);
 		pvt->dialing = 0;
 		pvt->begindigit = 0;
 	}