diff -r 307788aac0a8 -r 8248b03a2669 realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCSSession.cpp --- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCSSession.cpp Tue Feb 02 01:03:15 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCSSession.cpp Fri Apr 16 15:18:54 2010 +0300 @@ -249,13 +249,21 @@ { HBufC8* profileBuf = iHelper.ReadLC(ESipProfileItcArgProfile,aMessage); CSIPConcreteProfile* profile = InternalizeProfileLC(*profileBuf); - TBool canProceed = iCore.UpdateProfileToStoreL(profile, *this); - CleanupStack::Pop(profile); - CleanupStack::PopAndDestroy(profileBuf); - if (canProceed) - { - iCore.UpdateRegistrationL(profile->Id(), *this); - } + TBool updateAllowed = iCore.IsUpdateAllowed(profile); + if(updateAllowed) + { + TBool canProceed = iCore.UpdateProfileToStoreL(profile, *this); + CleanupStack::Pop(profile); + CleanupStack::PopAndDestroy(profileBuf); + if (canProceed) + { + iCore.UpdateRegistrationL(profile->Id(), *this); + } + } + else + { + User::Leave(KErrNotSupported); + } } // -----------------------------------------------------------------------------