Unable to resolve data corruption warning with fsck

This is stupid. I find myself answering my own question again. It says,

Leaving filesystem unchanged.

suggesting that nothing is changed. This actually mean that typing 1 followed by pressing enter inside the fsck prompt did not work. Anyway, the following does work:

# fsck.vfat -v -a -w /dev/sda1

The above command automatically write changes to disk. It would be great if anyone can tell me whether this is a bug in fsck or it is due to something else.