diff --git a/miscutils/bc.c b/miscutils/bc.c
index 2feaf7b..aeb29a9 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -6715,7 +6715,6 @@
 	BcInstPtr *ip = bc_vec_top(&G.prog.stack);
 	BcFunc *func = bc_program_func(ip->func);
 	char *code = func->code.v;
-	bool cond = false;
 
 	while (ip->idx < func->code.len) {
 		BcStatus s = BC_STATUS_SUCCESS;
@@ -6723,17 +6722,22 @@
 
 		switch (inst) {
 #if ENABLE_BC
-			case BC_INST_JUMP_ZERO:
+			case BC_INST_JUMP_ZERO: {
+				bool zero;
 				s = zbc_program_prep(&ptr, &num);
 				if (s) RETURN_STATUS(s);
-				cond = !bc_num_cmp(num, &G.prog.zero);
+				zero = (bc_num_cmp(num, &G.prog.zero) == 0);
 				bc_vec_pop(&G.prog.results);
-				// Fallthrough.
+				if (!zero) {
+					bc_program_index(code, &ip->idx);
+					break;
+				}
+				// else: fall through
+			}
 			case BC_INST_JUMP: {
-				size_t *addr;
 				size_t idx = bc_program_index(code, &ip->idx);
-				addr = bc_vec_item(&func->labels, idx);
-				if (inst == BC_INST_JUMP || cond) ip->idx = *addr;
+				size_t *addr = bc_vec_item(&func->labels, idx);
+				ip->idx = *addr;
 				break;
 			}
 			case BC_INST_CALL:
@@ -6851,8 +6855,7 @@
 				break;
 			case BC_INST_EXECUTE:
 			case BC_INST_EXEC_COND:
-				cond = inst == BC_INST_EXEC_COND;
-				s = zbc_program_execStr(code, &ip->idx, cond);
+				s = zbc_program_execStr(code, &ip->idx, inst == BC_INST_EXEC_COND);
 				break;
 			case BC_INST_PRINT_STACK: {
 				size_t idx;
