Похоже, у вас где-то есть утечка памяти, может быть, даже задолго до того, как произойдет это разрушение.Я использую Alleyoop, чтобы найти утечки.Может помочь, не помешает это убрать.
Используете ли вы несколько потоков?Возможно, это связано с тем, что какой-то необработанный указатель где-то захватывается другим потоком во время уничтожения.
В дополнение к этому я рекомендую использовать boost :: intrusive_ptr - очень удобный шаблон для обработки адресов и выпусков в общих объектах, который помогаетследуя за этим, но это, вероятно, не решит вашу проблему, если у вас нет реального беспорядка в вашем коде;)