Index: /trunk/src/VBox/HostServices/DragAndDrop/service.cpp
===================================================================
--- /trunk/src/VBox/HostServices/DragAndDrop/service.cpp	(revision 59855)
+++ /trunk/src/VBox/HostServices/DragAndDrop/service.cpp	(revision 59856)
@@ -1242,6 +1242,4 @@
                     /* Note: Report the current rc back to the guest. */
                     pClient->completeDeferred(rc);
-
-                    m_clientQueue.pop_front();
                 }
                 /*
@@ -1256,7 +1254,13 @@
                     pClient->completeDeferred(rc);
                 }
-                else /* Should not happen. */
-                    AssertMsgFailed(("Client ID=%RU32 in wrong state with uMsg=%RU32 (next message in queue: %RU32)\n",
-                                     pClient->clientId(), uMsgClient, uMsgNext));
+                else /* Should not happen; cancel the operation on the guest. */
+                {
+                    LogFunc(("Client ID=%RU32 in wrong state with uMsg=%RU32 (next message in queue: %RU32), cancelling\n",
+                             pClient->clientId(), uMsgClient, uMsgNext));
+
+                    pClient->completeDeferred(VERR_CANCELLED);
+                }
+
+                m_clientQueue.pop_front();
             }
 
