diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index fefb0b9fdcd256754a5cfd6c25524322bc98947e..8c5f25d23dc31a3820de61214422ecbbbd8b47d7 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -1148,10 +1148,11 @@ static int zt_digit_begin(struct ast_channel *chan, char digit)
 		int res;
 		ZT_DIAL_OPERATION zo = {
 			.op = ZT_DIAL_OP_APPEND,
-			.dialstr[0] = 'T',
-			.dialstr[1] = digit,
-			.dialstr[2] = 0,
 		};
+
+		dialstr[0] = 'T';
+		dialstr[1] = digit;
+		dialstr[2] = '\0';
 		if ((res = ioctl(pvt->subs[SUB_REAL].zfd, ZT_DIAL, &zo)))
 			ast_log(LOG_WARNING, "Couldn't dial digit %c\n", digit);
 		else