Index: trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-darwin.cpp
===================================================================
--- trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-darwin.cpp	(revision 85981)
+++ trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-darwin.cpp	(revision 85983)
@@ -270,4 +270,6 @@
     RT_NOREF(pCmdCtx);
 
+    LogFlowFuncEnter();
+
     ShClSvcLock();
 
@@ -276,5 +278,5 @@
     ShClSvcUnlock();
 
-    return VINF_SUCCESS;
+    LogFlowFuncLeaveRC(VINF_SUCCESS);
 }
 
Index: trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-win.cpp
===================================================================
--- trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-win.cpp	(revision 85981)
+++ trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-win.cpp	(revision 85983)
@@ -832,42 +832,44 @@
                          SHCLFORMAT uFormat, void *pvData, uint32_t cbData)
 {
+    RT_NOREF(pClient, pCmdCtx, uFormat, pvData, cbData);
+
     LogFlowFuncEnter();
 
-    int rc = ShClSvcGuestDataReceived(pClient, pCmdCtx, uFormat, pvData, cbData);
+    /* Nothing to do here yet. */
+
+    LogFlowFuncLeave();
+    return VINF_SUCCESS;
+}
+
+#ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS
+int ShClBackendTransferCreate(PSHCLCLIENT pClient, PSHCLTRANSFER pTransfer)
+{
+    RT_NOREF(pClient, pTransfer);
+
+    LogFlowFuncEnter();
+
+    return VINF_SUCCESS;
+}
+
+int ShClBackendTransferDestroy(PSHCLCLIENT pClient, PSHCLTRANSFER pTransfer)
+{
+    LogFlowFuncEnter();
+
+    SharedClipboardWinTransferDestroy(&pClient->State.pCtx->Win, pTransfer);
+
+    return VINF_SUCCESS;
+}
+
+int ShClBackendTransferGetRoots(PSHCLCLIENT pClient, PSHCLTRANSFER pTransfer)
+{
+    LogFlowFuncEnter();
+
+    const PSHCLWINCTX pWinCtx = &pClient->State.pCtx->Win;
+
+    int rc = SharedClipboardWinGetRoots(pWinCtx, pTransfer);
 
     LogFlowFuncLeaveRC(rc);
     return rc;
 }
-
-#ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS
-int ShClBackendTransferCreate(PSHCLCLIENT pClient, PSHCLTRANSFER pTransfer)
-{
-    RT_NOREF(pClient, pTransfer);
-
-    LogFlowFuncEnter();
-
-    return VINF_SUCCESS;
-}
-
-int ShClBackendTransferDestroy(PSHCLCLIENT pClient, PSHCLTRANSFER pTransfer)
-{
-    LogFlowFuncEnter();
-
-    SharedClipboardWinTransferDestroy(&pClient->State.pCtx->Win, pTransfer);
-
-    return VINF_SUCCESS;
-}
-
-int ShClBackendTransferGetRoots(PSHCLCLIENT pClient, PSHCLTRANSFER pTransfer)
-{
-    LogFlowFuncEnter();
-
-    const PSHCLWINCTX pWinCtx = &pClient->State.pCtx->Win;
-
-    int rc = SharedClipboardWinGetRoots(pWinCtx, pTransfer);
-
-    LogFlowFuncLeaveRC(rc);
-    return rc;
-}
 #endif /* VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS */
 
Index: trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-x11.cpp
===================================================================
--- trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-x11.cpp	(revision 85981)
+++ trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-x11.cpp	(revision 85983)
@@ -237,15 +237,12 @@
                          PSHCLCLIENTCMDCTX pCmdCtx, SHCLFORMAT uFormat, void *pvData, uint32_t cbData)
 {
-    AssertPtrReturn(pClient, VERR_INVALID_POINTER);
-    AssertPtrReturn(pCmdCtx, VERR_INVALID_POINTER);
-    AssertPtrReturn(pvData,  VERR_INVALID_POINTER);
-
-    LogFlowFunc(("pClient=%p, pv=%p, cb=%RU32, uFormat=%02X\n",
-                 pClient, pvData, cbData, uFormat));
-
-    int rc = ShClSvcGuestDataReceived(pClient, pCmdCtx, uFormat, pvData, cbData);
-
-    LogFlowFuncLeaveRC(rc);
-    return rc;
+    RT_NOREF(pClient, pCmdCtx, uFormat, pvData, cbData);
+
+    LogFlowFuncEnter();
+
+    /* Nothing to do here yet. */
+
+    LogFlowFuncLeave();
+    return VINF_SUCCESS;
 }
 
Index: trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc.cpp
===================================================================
--- trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc.cpp	(revision 85981)
+++ trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc.cpp	(revision 85983)
@@ -1727,5 +1727,12 @@
     }
     else
+    {
+        /* Let the backend implementation know. */
         rc = ShClBackendWriteData(pClient, &cmdCtx, uFormat, pvData, cbData);
+
+        int rc2; /* Don't return internals back to the guest. */
+        rc2 = ShClSvcGuestDataReceived(pClient, &cmdCtx, uFormat, pvData, cbData); /* To complete pending events, if any. */
+        AssertRC(rc2);
+    }
 
     LogFlowFuncLeaveRC(rc);
