diff --git a/dwavebinarycsp/factories/csp/circuits.py b/dwavebinarycsp/factories/csp/circuits.py
index <HASH>..<HASH> 100644
--- a/dwavebinarycsp/factories/csp/circuits.py
+++ b/dwavebinarycsp/factories/csp/circuits.py
@@ -65,8 +65,8 @@ def multiplication_circuit(nbit, vartype=dimod.BINARY):
     CARRY = defaultdict(dict)  # the carry of the ADDER gate associated with ai, bj is stored in CARRY[i][j]
 
     # we follow a shift adder
-    for i in range(num_multiplicand_bits):
-        for j in range(num_multiplier_bits):
+    for i in range(num_multiplier_bits):
+        for j in range(num_multiplicand_bits):
 
             ai = a[i]
             bj = b[j]
Fix i,j convention in circuits.py