diff --git a/backend/__32bit.py b/backend/__32bit.py
index <HASH>..<HASH> 100644
--- a/backend/__32bit.py
+++ b/backend/__32bit.py
@@ -574,7 +574,8 @@ def _ne32(ins):
     op1, op2 = tuple(ins.quad[2:])
     output = _32bit_oper(op1, op2)
     output.append('call __EQ32')
-    output.append('cpl')  # Negates the result
+    output.append('sub 1')  # Carry if A = 0 (False)
+    output.append('sbc a, a')  # Negates => A > B ?
     output.append('push af')
     REQUIRES.add('eq32.asm')
     return output
bugfix: NEQ<I> should accept any integer

If the return value where not 0xFF for true (e.g. 1) in the
_EQ<I> routine, this one might fail. Negate the result correctly.