diff -r 8c9c07ad8b6b -r 65a3ef1d5bd0 voipplugins/sipconnectionprovider/src/scppresencehandler.cpp --- a/voipplugins/sipconnectionprovider/src/scppresencehandler.cpp Mon Jun 21 15:29:21 2010 +0300 +++ b/voipplugins/sipconnectionprovider/src/scppresencehandler.cpp Thu Aug 19 09:45:22 2010 +0300 @@ -244,6 +244,17 @@ if ( iSubService.SipProfileId() == aProfileId && iSubService.EnableRequestedState() != CScpSubService::EScpNoRequest ) { + if ( EScpDeregistered == aEvent && + iSubService.EnableRequestedState() == CScpSubService::EScpEnabled ) + { + SCPLOGSTRING( "CScpPresenceHandler - EScpDeregistered -> unbind" ); + TRAPD( err, HandleDeregistrationL( EFalse ) ); + if ( KErrNotReady == err ) + { + SCPLOGSTRING( "CScpPresenceHandler - EScpDeregistered -> not ready: unbind" ); + TRAP_IGNORE( ServerUnBindL() ); + } + } //if network lost, unbind context if ( EScpNetworkLost == aEvent ) {