diff -r 2666d9724c76 -r d4f567ce2e7c phonebookui/Phonebook2/UIControls/src/cpbk2contacteditornewowncontact.cpp --- a/phonebookui/Phonebook2/UIControls/src/cpbk2contacteditornewowncontact.cpp Thu Jul 15 18:22:55 2010 +0300 +++ b/phonebookui/Phonebook2/UIControls/src/cpbk2contacteditornewowncontact.cpp Thu Aug 19 09:41:07 2010 +0300 @@ -224,16 +224,15 @@ { PBK2_DEBUG_PRINT( PBK2_DEBUG_STRING ( "CPbk2ContactEditorNewOwnContact::HandleIdleDelete(0x%x)" ), this ); - - iInputAbsorber->StopWait(); - MPbk2ContactEditorEventObserver* observer = iObserver; - iObserver = NULL; - MVPbkContactObserver::TContactOpResult result; - // Disable warnings by nulling the data members - result.iStoreContact = NULL; - result.iExtension = NULL; - result.iOpCode = MVPbkContactObserver::EContactDelete; - observer->ContactEditorOperationCompleted( result, iEditorParams ); + iInputAbsorber->StopWait(); + // Notify client asynchronously to let Delete Operation complete firstly and + // then the client will be notified to do the other things in the RunL() function. + iLatestResult.iExtension = NULL; + iLatestResult.iStoreContact = NULL; + iLatestResult.iOpCode = MVPbkContactObserver::EContactDelete; + TRequestStatus* status = &iStatus; + User::RequestComplete(status, KErrNone); + SetActive(); } // --------------------------------------------------------------------------