diff -r 2666d9724c76 -r d4f567ce2e7c phonebookui/Phonebook2/UIControls/src/CPbk2ContactEditorNewContact.cpp --- a/phonebookui/Phonebook2/UIControls/src/CPbk2ContactEditorNewContact.cpp Thu Jul 15 18:22:55 2010 +0300 +++ b/phonebookui/Phonebook2/UIControls/src/CPbk2ContactEditorNewContact.cpp Thu Aug 19 09:41:07 2010 +0300 @@ -224,14 +224,14 @@ ( "CPbk2ContactEditorNewContact::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 ); + // 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(); } // --------------------------------------------------------------------------