Bootloader problem

Hi,

I upload mega8 bootloader using usbasp and when I read the lock byte it is read as 0x0f which is the right value but when I program it using usbasp and read the lock byte it is read as 0x3f which mean it is unlocked. Isn't it weired? What should I do to avoid changing the lock byte? I have encountered strange problem when the flash memory is not locked. BTW, is there a way to compile the sketch without using bootloder? I want to use all the 8192 bytes of flash memory. Thanks.