diff -r d2517372cc44 -r ae69c2e8bc34 syncmlfw/common/sosserver_clientapi/src/NSmlContactSuiteClientAPI.cpp --- a/syncmlfw/common/sosserver_clientapi/src/NSmlContactSuiteClientAPI.cpp Tue Sep 28 17:53:08 2010 +0530 +++ b/syncmlfw/common/sosserver_clientapi/src/NSmlContactSuiteClientAPI.cpp Fri Oct 15 11:46:45 2010 +0530 @@ -43,14 +43,19 @@ if( loadedProcess.SecureId() != KSmlContactSuiteAppUID ) { return ; - } - + } if ( iContactSuiteCallBack == NULL ) { // callback not yet created, create - iContactSuiteCallBack = new (ELeave) CSmlContactSuiteActiveCallback( *this ); + iContactSuiteCallBack = new (ELeave) CSmlContactSuiteActiveCallback( *this ); } Send( ECmdContactSuiteRegisterObserversWithProfileId, TIpcArgs (aProfileId) ); - iContactSuiteCallBack->SetProgressObserverL( aProgressObserver ); + TRAPD( err, iContactSuiteCallBack->SetProgressObserverL( aProgressObserver )); + delete iContactSuiteCallBack; + iContactSuiteCallBack = NULL; + if(err != KErrNone) + { + User::Leave( err ); + } };