diff -r 735348f59235 -r 948c7f65f6d4 mmlibs/mmfw/src/Client/Audio/mmfclienttoneplayer.cpp --- a/mmlibs/mmfw/src/Client/Audio/mmfclienttoneplayer.cpp Tue Aug 31 16:43:06 2010 +0300 +++ b/mmlibs/mmfw/src/Client/Audio/mmfclienttoneplayer.cpp Wed Sep 01 12:38:50 2010 +0100 @@ -860,7 +860,7 @@ void CMMFMdaAudioToneUtility::CancelPrepare() { - // xxx - do we need to cancel the callback? What if the callback is actually calling back another error? Probably best not to cancel... + // FIXME - do we need to cancel the callback? What if the callback is actually calling back another error? Probably best not to cancel... delete iToneConfig; iToneConfig = NULL; @@ -1037,7 +1037,10 @@ } else { - iAsyncCallback->MatoPlayStarted(KErrNone); + if(iPlayStartObserver) + { + iAsyncCallback->MatoPlayStarted(KErrNone); + } } } @@ -1139,12 +1142,15 @@ void CMMFMdaAudioToneObserverCallback::MatoPlayComplete(TInt aError) { - iAction = EPlayComplete; - iErrorCode = aError; - - TRequestStatus* s = &iStatus; - SetActive(); - User::RequestComplete(s, KErrNone); + if(!IsActive()) + { + iAction = EPlayComplete; + iErrorCode = aError; + + TRequestStatus* s = &iStatus; + SetActive(); + User::RequestComplete(s, KErrNone); + } } void CMMFMdaAudioToneObserverCallback::MatoPlayStarted(TInt aError)