Strange exception, please help

I’m having a problem that I hope you can help me solve. My code is
throwing an AV in the startup code in a way I’ve never encountered
before. The instruction that causes the AV is:

006472E0 832D907FAF0001 sub dword ptr [0x00AF7B90], 0x01

The exception is:

Access violation at address 006472E0. Write of address 00CC7B90.

0xAF7B90 is a variable in my BSS segment. 0xCC7B90 is outside of my
address space. The code is in the initialization section of a 3rd party
component which is called from the startup code, well before any of my
application code executes.

I don’t understand how the above instruction could cause a write to an
address different from the specified target address. It seems suspicious
that the addresses differ only in the 2nd byte.

Thinking that I might have a hardware problem, I’ve swapped the CPU and
memory in my computer, but the problem persists. I don’t have a spare
motherboard to swap in.

This problem comes and goes depending on the address of the above SUB
instruction. If I comment out a single line in my code, the SUB
instruction appears at address 0x6472CC rather than 0x6472E0, and the
instruction executes properly, subtracting 1 from the DWORD at 0xAF7B90.

WinXP, SP1a+.

TIA!