Just had to share my learning experience on this one. I got my meshes, textures, and materials moved into hash tables for faster searching. I didn't want to rewrite a hash table for each one, so I made them derive from a solid hash table class. Well almost solid. Once I got it to store addresses, and everything compiled nicly, I tryed running it. Kept on getting access violations, when it called DrawSubset on the mesh. I tore my hear apart trying to figure out what was wrong. The data in the table was all 'real pointers', so things looked ok. I popped in a breakpoint, and looked at the data in the pointer. Strage stuff was in there. Kinda hard to explain, but anyway I decided to watch the data that gets put into the table by stepping thru the functions. Well folks, I was passing the address-of the argument in the function. Basically I was storing stack pointers into my hash tables. An extra & in my code looked like this: HashTable[hashed].pData = &pbuf; Yanked out the & symbol and no more crashing on DrawSubset. Stupid error, stupid programmer, I don't know why I thought I needed it in there.