diff -r 346e49b9ce14 -r 0a1ad22c7bdc realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrmonitor.cpp --- a/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrmonitor.cpp Tue Sep 14 22:01:18 2010 +0300 +++ b/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrmonitor.cpp Wed Sep 15 12:36:02 2010 +0300 @@ -188,16 +188,20 @@ // void CSipAlrMonitor::FreeResources ( MSipAlrObserver& aObserver ) { + CSipAlrSnapMonitor* monitor= 0; for ( TInt i = iSnapMonitors.Count()-1; i >= 0; i-- ) { TBool last = iSnapMonitors[i]->DetachObserver ( aObserver ); if ( last ) { - delete iSnapMonitors[i]; - iSnapMonitors.Remove ( i ); + monitor = iSnapMonitors[i]; + iSnapMonitors.Remove(i); + delete monitor; + monitor = NULL; PROFILE_DEBUG1( "CSipAlrMonitor::FreeResources monitor deleted" ) } } + iSnapMonitors.Compress(); } // -----------------------------------------------------------------------------