It gets weirder! I decided to flash the fuses to the USBasp, since the fuses for the Atmega8 match those for the Atmega8A, and my USBasp has a 12Mhz Xtal on board.
Take a look at the command I issued and its output below:
avrdude -c arduino -P \.\COM7 -p m8 -B 200 -U hfuse:w:0xC9:m -U lfuse:w:0xEF:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f
avrdude: reading input file "0xC9"
avrdude: writing hfuse (1 bytes):Writing | | 0% 0.00s ***faile
d;
Writing | ################################################## | 100% 0.07savrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xC9:
avrdude: load data hfuse data from input file 0xC9:
avrdude: input file 0xC9 contains 1 bytes
avrdude: reading on-chip hfuse data:Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0xc9 != 0x00
avrdude: verification error; content mismatchavrdude: safemode: hfuse changed! Was c9, and is now 0
Would you like this fuse to be changed back? [y/n] y
avrdude: stk500_cmd(): programmer is out of sync
In other words, it wouldn't let me save the fuses. What gives?!