Okay well today I decided to actually make kmalloc() work. I found out there was a slight error in the physical.c bitmap memory manager. It would return cycles of addresses. I'm not entirely sure it's correct now, but it appears to be working and I'll test it more later. I am confident that the new kmalloc will work. I tested it by kmallocing() 10,000 times with values from 0-8192 and then freed them in a random order and the final heap size was 1 node, which is good, because that means fragmentation is being handled correctly. So you should merge the VirtualMemory branch in as soon as possible otherwise you may be chasing down evil bugs! -Walter