diff -r 2bb754abd467 -r 0ffb4e86fcc9 userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp --- a/userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp Mon Jun 21 17:12:14 2010 +0300 +++ b/userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp Thu Jul 15 20:11:42 2010 +0300 @@ -114,9 +114,13 @@ return; } break; + case EUsbHostMsUnRegisterInterface: + iCleanupInProgress = ETrue; + break; /* If it is a cleanup then we need to delete the iDeviceThread */ case EUsbHostMsFinalCleanup: delete iDeviceThread; + iDeviceThread = NULL; iThread.Kill(KErrNone); aMessage.Complete(KErrNone); return; @@ -124,7 +128,12 @@ break; } - __ASSERT_DEBUG(iDeviceThread != NULL, User::Panic(KUsbMsHostPanicCat, EDeviceThreadDoesNotExist)); + if (iDeviceThread == NULL || iCleanupInProgress ) + { + aMessage.Complete(KErrBadHandle); + return; + } + r = iDeviceThread->QueueMsg(aMessage); if (r != KErrNone)