When it 'Blows up' what is the exception?
<br />
TRY <br />
{<br />
Traitarry.Add(???);<br />
} <br />
CATCH(CException& e) <br />
{<br />
TRACE("Exception %s\n", e.Message);<br />
}<br />
It could be CMemoryException for example.
Is m_Traitarry accessed by multiple threads, this could cause an exception if one thread is adding and another is reading or adding. If this is your problem you will need to protect it with a critical section or Mutex.
e.g.
<br />
CArray<???> m_Traitarry<br />
CCriticalSection m_TraitarryAccess<br />
<br />
void AddToArray(???)<br />
{<br />
CSingleLock lock(&m_Traitarry, TRUE);<br />
Traitarry.Add(???); <br />
}<br />