diff --git a/lib/fast486/opgroups.c b/lib/fast486/opgroups.c index 0a297aed414..754a9d8fc90 100644 --- a/lib/fast486/opgroups.c +++ b/lib/fast486/opgroups.c @@ -496,8 +496,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup8F) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred - restore SP */ - if (OperandSize) State->GeneralRegs[FAST486_REG_ESP].Long += sizeof(ULONG); - else State->GeneralRegs[FAST486_REG_ESP].LowWord += sizeof(USHORT); + if (OperandSize) State->GeneralRegs[FAST486_REG_ESP].Long -= sizeof(ULONG); + else State->GeneralRegs[FAST486_REG_ESP].LowWord -= sizeof(USHORT); return FALSE; }