diff --git a/src/conio/cterm.c b/src/conio/cterm.c
index 7c52c68ec42e260737efc28c0b718d3f5cda1631..19edfafa64964a0563fbe5a93334560cfc862476 100644
--- a/src/conio/cterm.c
+++ b/src/conio/cterm.c
@@ -3516,12 +3516,12 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
 					else if (strcmp(seq->ctrl_func, "*z") == 0) {
 						if (seq->param_count > 0 && seq->param_int[0] <= 63) {
 							if (cterm->macros[seq->param_int[0]]) {
-								if ((cterm->in_macro & (1<<seq->param_int[0])) == 0) {
+								if ((cterm->in_macro & (UINT64_C(1)<<seq->param_int[0])) == 0) {
 									cterm->escbuf[0]=0;
 									cterm->sequence=0;
-									cterm->in_macro |= (1<<seq->param_int[0]);
+									cterm->in_macro |= (UINT64_C(1)<<seq->param_int[0]);
 									cterm_write(cterm, cterm->macros[seq->param_int[0]], cterm->macro_lens[seq->param_int[0]], retbuf + strlen(retbuf), retsize - strlen(retbuf), speed);
-									cterm->in_macro &= ~(1<<seq->param_int[0]);
+									cterm->in_macro &= ~(UINT64_C(1)<<seq->param_int[0]);
 								}
 							}
 						}