diff -r dd3853b8dc3f -r 1e1cc61f56c3 realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCSSession.cpp --- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCSSession.cpp Fri Feb 19 23:10:33 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCSSession.cpp Fri Mar 12 15:44:11 2010 +0200 @@ -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); + } } // -----------------------------------------------------------------------------