diff -r acef663c1218 -r b73a2e62868f harvester/client/src/harvesterrequestqueue.cpp --- a/harvester/client/src/harvesterrequestqueue.cpp Tue Jan 26 12:13:20 2010 +0200 +++ b/harvester/client/src/harvesterrequestqueue.cpp Tue Feb 02 00:24:33 2010 +0200 @@ -125,7 +125,8 @@ { CHarvesterRequestActive* selectedRequest = NULL; - for ( TInt i = 0; i < iRequests.Count(); i++ ) + TInt endIndex( iRequests.Count() ); + for ( TInt i = 0; i < endIndex; i++ ) { CHarvesterRequestActive* request = iRequests[i]; @@ -139,10 +140,7 @@ // correct the index so that no tasks are skipped i--; - if(i <= -1) - { - i = -1; - } + endIndex--; WRITELOG( "CHarvesterRequestQueue::RunL() - removing completed request"); } @@ -233,6 +231,7 @@ if( request ) { request->Cancel(); + request->iRequestQueue = NULL; } } }