Can't write efuse on atmega168?

I’m trying to change the extended fuse on two of my atmega168 chips using avrdude and a serial bitbang programmer. I’ve used this setup before to program other chips, including a mega168 before, so I know that it works. Also, I’m able to program the low fuse, high fuse, eeprom and flash of both chips. However, when I try to write to the efuse, it fails, and doesn’t write it, both in basic and terminal mode of avrdude.

The error in terminal mode looks like this:

avrdude> w efuse 0 0xf9

w efuse 0 0xf9

avrdude (write): error writing 0xf9 at 0x00000, rc=-6

avrdude (write): error writing 0xf9 at 0x00000 cell=0x01

Anyone know why this would happen? I doubt it’s the chip, since it’s the exact same for both.