diff -r f5809cfbf6d5 -r 523717cdb0ad mtpfws/mtpfw/src/cmtpdataprovider.cpp --- a/mtpfws/mtpfw/src/cmtpdataprovider.cpp Tue May 11 16:59:11 2010 +0300 +++ b/mtpfws/mtpfw/src/cmtpdataprovider.cpp Tue May 25 13:35:25 2010 +0300 @@ -616,7 +616,8 @@ else if (iSingletons.DpController().EnumerateState() < CMTPDataProviderController::EEnumeratingPhaseOneDone) { __FLOG(_L8("DP Enumeration is not complete")); - + if (iCurrentRequest != NULL) + { TUint16 opCode = iCurrentRequest->Uint16(TMTPTypeRequest::ERequestOperationCode); switch(opCode) @@ -669,6 +670,7 @@ default: break; } + } } } else @@ -678,16 +680,19 @@ //Make ActiveRequest processor and CancelRequest processing to occur synchronously if( iCurrentTransactionPhase == ERequestPhase ) - { - CMTPSession& session(static_cast(iCurrentConnection->SessionWithMTPIdL(iCurrentRequest->Uint32(TMTPTypeRequest::ERequestSessionID)))); - MMTPConnectionProtocol& connection(static_cast(*iCurrentConnection)); + { + if( iCurrentRequest != NULL ) + { + CMTPSession& session(static_cast(iCurrentConnection->SessionWithMTPIdL(iCurrentRequest->Uint32(TMTPTypeRequest::ERequestSessionID)))); + MMTPConnectionProtocol& connection(static_cast(*iCurrentConnection)); - // Pass transaction to session to check against any pending events - if ( session.CheckPendingEvent(*iCurrentRequest) ) - { - //Current request matches a pending event, pass event to connection layer event processing - connection.ReceivedEventL(session.PendingEvent()); - } + // Pass transaction to session to check against any pending events + if ( session.CheckPendingEvent(*iCurrentRequest) ) + { + //Current request matches a pending event, pass event to connection layer event processing + connection.ReceivedEventL(session.PendingEvent()); + } + } } }