diff -r 923ff622b8b9 -r 4633027730f5 src/hbcore/utils/hbtimer.cpp --- a/src/hbcore/utils/hbtimer.cpp Tue Jul 06 14:36:53 2010 +0300 +++ b/src/hbcore/utils/hbtimer.cpp Wed Aug 18 10:05:37 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; + } } } }