diff -r cfe5eb8bb9ca -r 2ca0d29c17c4 imservices/instantmessagingcache/imcacheserver/src/ccacheserveractivehelper.cpp --- a/imservices/instantmessagingcache/imcacheserver/src/ccacheserveractivehelper.cpp Wed Jun 09 10:02:05 2010 +0300 +++ b/imservices/instantmessagingcache/imcacheserver/src/ccacheserveractivehelper.cpp Mon Jun 21 16:01:18 2010 +0300 @@ -226,21 +226,31 @@ } // if there are no unread messages then reset the status pane indicator. TInt unreadCount = 0; + TInt currentContactUnReadCount = 0; TInt headerCount = iHeaderArray.Count(); + TInt id = 0; for( TInt i=0; i< headerCount; i++ ) { // note in this case reciepient is own user id MIMCacheMessageHeader* header = iHeaderArray[i]; if( header->ServiceId() == sericeId ) { - unreadCount = unreadCount + header->UnreadMessageCount(); + if(buddyId->Compare(iHeaderArray[i]->BuddyId()) == 0) + { + currentContactUnReadCount = header->UnreadMessageCount(); + } + if(header->UnreadMessageCount()) + { + id = i; + } + } } - //BugFix:ESLM-83TF7K: Unread messages are not updated to universal indicator. -// if(!unreadCount) -// { - PublishMessageInfoL(*buddyId,sericeId); -// } + + if(!currentContactUnReadCount) + { + PublishMessageInfoL(iHeaderArray[id]->BuddyId(),sericeId); + } CleanupStack::PopAndDestroy(buddyId);