diff -r bdd4df282e3e -r 2965a06983dc locationrequestmgmt/networkrequesthandler/src/EPos_CPosDialogCtrl.cpp --- a/locationrequestmgmt/networkrequesthandler/src/EPos_CPosDialogCtrl.cpp Fri Apr 16 16:28:16 2010 +0300 +++ b/locationrequestmgmt/networkrequesthandler/src/EPos_CPosDialogCtrl.cpp Mon May 03 13:50:32 2010 +0300 @@ -78,6 +78,8 @@ for (TInt i = 0; i < count; i++) { DoCompleteRequest(0, KErrServerTerminated); + // Delete the pointer items + delete iRequestQueue[i].iRequestInfo; } iNotifier.Close(); @@ -277,16 +279,8 @@ TInt aIndex, TInt aCompletionCode) { - TRequest request = iRequestQueue[aIndex]; - if (request.iType == TPosQNInputData::ENotification) - { - delete request.iRequestInfo; - } - else - { - TRequestStatus* status = request.iStatus; - User::RequestComplete(status, aCompletionCode); - } + TRequestStatus* status = iRequestQueue[aIndex].iStatus; + User::RequestComplete(status, aCompletionCode); iRequestQueue.Remove(aIndex); iRequestQueue.Compress(); } @@ -371,10 +365,22 @@ delete reqStackBuf; reqStackBuf = NULL; - iNotifier.StartNotifierAndGetResponse( - iStatus, KNotifierUid, nullPtr, nullPtr); - SetActive(); - + if (data.iType == TPosQNInputData::ENotification) // We dont expect a resonse from a notfication + { + iNotifier.StartNotifier(KNotifierUid, nullPtr, nullPtr); + + // As we wont be getting a response remove from the notification list + delete iRequestQueue[0].iRequestInfo; + iRequestQueue.Remove(0); + iRequestQueue.Compress(); + } + else + { + iNotifier.StartNotifierAndGetResponse( + iStatus, KNotifierUid, nullPtr, nullPtr); + SetActive(); + } + err = iNotifier.UpdateNotifier(KNotifierUid, *buffer, nullPtr); if (err != KErrNone) {