mode = mode00 if label is forward ref
diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index f2acfe0..ee03b2a 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -2097,7 +2097,7 @@
 			mod00 = 0, mod01 = 1, mod10 = 2
 		};
 		int mod = mod10; // disp32
-		if (!baseBit || ((baseIdx & 7) != Operand::EBP && disp == 0)) {
+		if (!baseBit || ((baseIdx & 7) != Operand::EBP && (label == 0 && disp == 0))) {
 			mod = mod00;
 		} else if (label) {
 			// always disp32