I have created a settings lisbox by deriving it from CAknSettingItemList class. I have two items in this settings list box UserId and Password. The former is a CAknTextSettingItem and the later is a CAknPasswordSettingItem.

void CSyncOptionsListbox::StoreSettingsL()
// Store Settings into the data members

// Create a file server object;
CFileServ *file = CFileServ::NewL();

// Put on clean up stack

// Local Variable
TBuf8<20> keyValue;

// Open file for reading
if ( file->OpenForReadL( KSyncIniFile ) )

// User Id Entry
keyValue.Copy( iUserId );
file->SetKeyValueL( KSyncKeyUserId, keyValue );

// Password Entry
keyValue.Copy( iPassword );
file->SetKeyValueL( KSyncKeyPassword, keyValue );

// Close the file


// Destroy the object


For saving the setting to and ini file i have written the above code. In this I call the parent class's StoreSettingsL() function which transfers the setting form the UI to the member variables iUserId and iPassword. But my problem is that when I am on Password option and press ok, I get the get the edit dialog. Now suppose I make some changes and instead of pressing ok I press cancel. In a normal course the changes should be discarded and the original value should be retained, but in this case changes are retained even though I press cancel softkey.

Note that the same problem does occur when I am on the userid item.

What could be the possible cause of the problem? Any solutions