diff -r 6134b5029079 -r 876a3df1f464 richcallsettingsengine/rcse2/src/crcseprofileregistry.cpp --- a/richcallsettingsengine/rcse2/src/crcseprofileregistry.cpp Wed Apr 14 15:49:55 2010 +0300 +++ b/richcallsettingsengine/rcse2/src/crcseprofileregistry.cpp Tue Apr 27 16:28:03 2010 +0300 @@ -1317,7 +1317,13 @@ if ( KErrNone == err ) { - aEntry.AddPropertyL( aProperty ); + err = aEntry.AddPropertyL( aProperty ); + if ( KErrNone != err ) + { + RCSELOGSTRING2( + "CRCSEProfileRegistry::FindAndAddDefaultPropertyL - add property err: %d", + err ); + } } } @@ -1343,6 +1349,8 @@ { return; } + + TInt err( KErrNone ); // Service table API CSPSettings* table = CSPSettings::NewLC(); @@ -1358,13 +1366,32 @@ { property->SetName( EPropertyServiceSetupPluginId ); property->SetValue( aNewEntry.iVoIPPluginUID ); - entry->AddPropertyL( *property ); + err = entry->AddPropertyL( *property ); + if ( KErrAlreadyExists == err ) + { + User::LeaveIfError( + entry->UpdateProperty( EPropertyServiceSetupPluginId, + aNewEntry.iVoIPPluginUID ) ); + } + else + { + User::LeaveIfError( err ); + } } // This property is needed by clients to check if VoIP service is used property->SetName( ESubPropertyVoIPSettingsId ); property->SetValue( KVoIPSettingsID ); - entry->AddPropertyL( *property ); + err = entry->AddPropertyL( *property ); + if ( KErrAlreadyExists == err ) + { + User::LeaveIfError( entry->UpdateProperty( ESubPropertyVoIPSettingsId, + KVoIPSettingsID ) ); + } + else + { + User::LeaveIfError( err ); + } // Service Attribute Mask FindAndAddDefaultPropertyL(