diff -r f8e15b44d440 -r 4843bb5893b6 mtpfws/mtpfw/src/cmtpconnection.cpp --- a/mtpfws/mtpfw/src/cmtpconnection.cpp Fri Feb 19 23:40:44 2010 +0200 +++ b/mtpfws/mtpfw/src/cmtpconnection.cpp Fri Mar 12 15:46:41 2010 +0200 @@ -93,10 +93,6 @@ delete link; } - if (iTransportConnection != NULL) - { - iTransportConnection->Unbind(*this); - } iSessions.ResetAndDestroy(); //close the property iProperty.Close(); @@ -374,6 +370,10 @@ CloseAllSessions(); iSessions.Reset(); + if (iTransportConnection != NULL) + { + iTransportConnection->Unbind(*this); + } //notify ConnectionMgr and corresponding transports of completion of connection close iSingletons.ConnectionMgr().ConnectionCloseComplete(iConnectionId); @@ -430,15 +430,15 @@ { session.SetTransactionPhase(EIdlePhase); + if (iTransportConnection != NULL) + { + iTransportConnection->TransactionCompleteL(aRequest); + } + if (State() == EStateShutdown && ActiveSessions() == 0) { CompleteCloseConnection(); } - - if (iTransportConnection != NULL) - { - iTransportConnection->TransactionCompleteL(aRequest); - } } __FLOG(_L8("TransactionCompleteL - Exit")); }