Myself and another FreeBSD user have reported a crash bug at startup in QThread::wait. I determined the crash occured due to the use of uninitialized data in the EQPacket. During EQPacket's initialization, switchSession() is called, which in turn calls resetDecryptor. resetDecryptor inspects variables m_decryptActive and m_decryptThread, which are initialized in EQPacket's constructor *after* switchSession() is called. Probably the reason that FreeBSD users notice the crash bug is due to differences in thread scheduling between FreeBSD and Linux.
All this patch does is put #include "packet.h" back in packet.cpp (which is required to run SINS on FreeBSD, not not related to this crash bug) and moved a few initializations farther up in the EQPacket constructor.
patch to fix crash bug on FreeBSD