diff -r 8c9c07ad8b6b -r 65a3ef1d5bd0 sipvoipprovider/src/svpsessionbase.cpp --- a/sipvoipprovider/src/svpsessionbase.cpp Mon Jun 21 15:29:21 2010 +0300 +++ b/sipvoipprovider/src/svpsessionbase.cpp Thu Aug 19 09:45:22 2010 +0300 @@ -1524,7 +1524,8 @@ TBool bothStreamsDisabled ( ETrue ); TRAP_IGNORE( bothStreamsDisabled = IsBothStreamsDisabledL() ); if ( bothStreamsDisabled && - CMceSession::EEstablished == aStream.Session()->State() ) + CMceSession::EEstablished == aStream.Session()->State() && + IsErrorInULandDLFirstTime() ) { SetErrorInULandDLFirstTime( EFalse ); TRAP_IGNORE( StartTimerL( KSVPICMPErrorTime, KSVPICMPErrorTimerExpired ) ) @@ -3103,6 +3104,15 @@ SVPDEBUG1( "CSVPSessionBase::UpdateFailed In" ) SVPDEBUG2( "CSVPSessionBase::UpdateFailed aStatusCode=%d", aStatusCode ) + // Check if MCE Session has changed + if ( &Session() != &aSession ) + { + // And if, then update to the current session + SVPDEBUG1( "CSVPSessionBase::UpdateFailed - update MCE Session" ) + delete iSession; + iSession = &aSession; + } + if ( iHoldController ) { iHoldController->RequestFailed( aSession, aStatusCode, *this );