Lock fuse doesn't prevent read?

Hi All, I tried to use the lock bits to prevent reading of my stand alone mega328 by writing

avrdude -P usb -c usbasp -p atmega328 -U lfuse:w:0xff:m -U hfuse:w:0xdf:m -U efuse:w:0x07:m; avrdude -v -c usbasp -p atmega328 -e -U flash:w:myhex.hex

Then I wrote
"avrdude -c usbasp -p atmega328 -V -U lock:w:0xf7:m" after my hex file was loaded.

avrDude said that 1 lock bit was written successfully, but when I used the command "avrdude -c usbasp -p atmega328 -U flash:r:mystery.hex:r", I was able to read it. I just used text editor to view and most was just symbols, but there parts of it that were readable. I'm not using a bootloader and from what I've read, that should have disabled LPM, or read. Did I do something wrong. Thanks, adown

EDIT: I am using a usbasp to program and read. Does that only lock reading from ISP?

adown:
I was able to read it.

Did you check the data read against the original hex file used for programming?
Most likely, not-.

Setting the lockbit does not prevent reading from the controller, it just prevents reading the programmed and correct data, and instead you get silly and confused sequences of bytes, which are NOT EQUAL to the original HEX file.

OK, no I didn't check it against the loaded file. I guess I expected a read error. There was only a few discernible words and a bunch of symbols, but I was using mac text editor and I thought that might have been the reason for the symbols. Thank you