diff -r 071f3cdcec69 -r a152385bb39d imservices/instantmessagingcache/imcacheclient/src/cimcacheaccesseventhandler.cpp --- a/imservices/instantmessagingcache/imcacheclient/src/cimcacheaccesseventhandler.cpp Fri Feb 19 23:08:08 2010 +0200 +++ b/imservices/instantmessagingcache/imcacheclient/src/cimcacheaccesseventhandler.cpp Fri Mar 12 15:43:59 2010 +0200 @@ -120,11 +120,20 @@ break; } case EIMOperationUnRegistered: - { - TRACE( T_LIT("CIMCacheEventHandler::RunL() EIMOperationUnRegistered") ); - iContinueObserving = EFalse; - break; - } + { + TRACE(T_LIT( + "CIMCacheEventHandler::RunL() EIMOperationUnRegistered")); + iContinueObserving = EFalse; + break; + } + case KErrServerTerminated: + { + // This case handles when the server terminated status is set. + // This is scenario is typically scene when imcache server is uninstalled. + UnRegisterObserver(); + DoCancel(); + break; + } default : { TRACE( T_LIT("CIMCacheEventHandler::RunL() default") );