diff -r c2db6e29750c -r 96e575696901 usbmgmt/usbmgr/usbman/server/SRC/CUsbSession.cpp --- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbSession.cpp Fri Mar 12 15:51:10 2010 +0200 +++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbSession.cpp Mon Mar 15 12:46:46 2010 +0200 @@ -1862,18 +1862,27 @@ LOG_FUNC - if (!iHostEventObserverOutstanding) + if (!iHostEventObserverQueueEvents) { + //Never register + LOGTEXT(_L8("iHostEventObserverQueueEvents is FALSE!")); return KErrNone; } - iHostEventObserverOutstanding = EFalse; - iHostEventObserverMessage.Complete(KErrCancel); + if (iHostEventObserverOutstanding) + { + iHostEventObserverOutstanding = EFalse; + iHostEventObserverMessage.Complete(KErrCancel); + LOGTEXT(_L8("iHostEventObserverMessage.Complete(KErrCancel);")); + } // client doesn't need events queuing any more iHostEventObserverQueueEvents = EFalse; + //Reset OTG Host State Queue + iHostEventQueueHead = 0; + iHostEventQueueTail = 0; - return KErrNone; + return KErrNone; } /**