diff -r e3fccba1f02f -r 8134400f8f89 realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCacheItem.cpp --- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCacheItem.cpp Fri Sep 17 08:32:30 2010 +0300 +++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCacheItem.cpp Mon Oct 04 00:41:02 2010 +0300 @@ -765,10 +765,23 @@ { PROFILE_DEBUG4("ProfileCacheItem::HandleError id,err", ProfileId(), aError) + TBool updateProfile(HasProfileUpdate() && iCurrentState->Name() == + CSIPConcreteProfile::EUnregistrationInProgress); if (iCurrentState->ErrorOccurred(*this, aError)) { PROFILE_DEBUG1("ProfileCacheItem::HandleError go unregistered") - + + if(updateProfile) + { + PROFILE_DEBUG1("CSIPProfileCacheItem::HandleError ChangeStateL") + StopSnapMonitoring(); + TRAPD(err, ChangeStateL(&iServerCore.UnregisteredState())); + if (err == KErrNone) + { + return EFalse; + } + } + PROFILE_DEBUG1("CSIPProfileCacheItem::HandleError SwitchToUnregisteredState") if(SwitchToUnregisteredState(ETrue)) { return EFalse;