diff -r 7516d6d86cf5 -r ed14f46c0e55 src/hbcore/utils/hbtimer.cpp --- a/src/hbcore/utils/hbtimer.cpp Mon Oct 04 17:49:30 2010 +0300 +++ b/src/hbcore/utils/hbtimer.cpp Mon Oct 18 18:23:13 2010 +0300 @@ -46,10 +46,13 @@ void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) { if (oldState != QAbstractAnimation::Stopped && newState == QAbstractAnimation::Stopped && mEntry) { mEntry->timerFired(); - mEntry->mAnim = 0; // to prevent confusing unregisterEntry() and double deletion - HbTimer::instance()->unregisterEntry(mEntry); - if (mEntry->mDeleteWhenFinishedNormally) { - delete mEntry; + // mEntry may be nulled out due to an unregister call from the callback. + if (mEntry) { + mEntry->mAnim = 0; // to prevent confusing unregisterEntry() and double deletion + HbTimer::instance()->unregisterEntry(mEntry); + if (mEntry->mDeleteWhenFinishedNormally) { + delete mEntry; + } } } }