diff -r 8b094906a049 -r 60a94a45d437 mtpfws/mtpfw/dataproviders/devdp/src/cmtpopensession.cpp --- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpopensession.cpp Mon Mar 15 12:43:12 2010 +0200 +++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpopensession.cpp Wed Mar 31 22:58:56 2010 +0300 @@ -82,7 +82,12 @@ */ void CMTPOpenSession::ServiceL() { - iSingletons.DpController().WaitForEnumerationComplete(); + if(iSingletons.DpController().EnumerateState() < CMTPDataProviderController::EEnumeratingPhaseOneDone) + { + RegisterPendingRequest(); + return; + } + if(iSingletons.DpController().EnumerateState() < CMTPDataProviderController::EEnumeratingPhaseOneDone) { SendResponseL(EMTPRespCodeDeviceBusy);