Well, ran the program for about 3 hours last night w/out a single crash. I guess I wasn't too far off from the mark. On a side note, the reason I didn't extend the everquest.h class file for the zone packet is because the client sends the Titanium version and I still wanted to read that one. So by changing the Match function that same structure is used for both the client and server side packets.