Index: /trunk/src/VBox/Main/include/GuestSessionImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/GuestSessionImpl.h	(revision 42438)
+++ /trunk/src/VBox/Main/include/GuestSessionImpl.h	(revision 42439)
@@ -130,5 +130,5 @@
     int                     processClose(ComObjPtr<GuestProcess> pProcess);
     int                     processCreateExInteral(GuestProcessInfo &procInfo, ComObjPtr<GuestProcess> &pProgress);
-    inline bool             processExists(ULONG uProcessID, ComObjPtr<GuestProcess> *pProcess);
+    inline bool             processExists(uint32_t uint32_t, ComObjPtr<GuestProcess> *pProcess);
     inline int              processGetByPID(ULONG uPID, ComObjPtr<GuestProcess> *pProcess);
     /** @}  */
Index: /trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp	(revision 42438)
+++ /trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp	(revision 42439)
@@ -357,6 +357,9 @@
     if (RT_SUCCESS(rc))
     {
-        /* Add callback with new context ID to our callback map. */
-        mData.mCallbacks[uNewContextID] = pCallback;
+        /* Add callback with new context ID to our callback map.
+         * Note: This is *not* uNewContextID (which also includes
+         *       the session + process ID), just the context count
+         *       will be used here. */
+        mData.mCallbacks[mData.mNextContextID] = pCallback;
         Assert(mData.mCallbacks.size());
 
@@ -374,6 +377,8 @@
 int GuestProcess::callbackDispatcher(uint32_t uContextID, uint32_t uFunction, void *pvData, size_t cbData)
 {
-/*    LogFlowFunc(("uPID=%RU32, uContextID=%RU32, uFunction=%RU32, pvData=%p, cbData=%z\n",
-                 mData.mPID, uContextID, uFunction, pvData, cbData));*/
+#ifdef DEBUG
+    LogFlowFunc(("uPID=%RU32, uContextID=%RU32, uFunction=%RU32, pvData=%p, cbData=%RU32\n",
+                 mData.mPID, uContextID, uFunction, pvData, cbData));
+#endif
 
     AssertPtrReturn(pvData, VERR_INVALID_POINTER);
@@ -381,4 +386,8 @@
 
     AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
+
+#ifdef DEBUG
+    LogFlowFunc(("Callback count=%RU32\n", VBOX_GUESTCTRL_CONTEXTID_GET_COUNT(uContextID)));
+#endif
 
     int rc;
@@ -447,5 +456,7 @@
         rc = VERR_NOT_FOUND;
 
-    //LogFlowFuncLeaveRC(rc);
+#ifdef DEBUG
+    LogFlowFuncLeaveRC(rc);
+#endif
     return rc;
 }
@@ -453,5 +464,6 @@
 inline bool GuestProcess::callbackExists(ULONG uContextID)
 {
-    GuestCtrlCallbacks::const_iterator it = mData.mCallbacks.find(uContextID);
+    GuestCtrlCallbacks::const_iterator it =
+        mData.mCallbacks.find(VBOX_GUESTCTRL_CONTEXTID_GET_COUNT(uContextID));
     return (it == mData.mCallbacks.end()) ? false : true;
 }
@@ -459,5 +471,6 @@
 inline int GuestProcess::callbackRemove(ULONG uContextID)
 {
-    GuestCtrlCallbacks::iterator it = mData.mCallbacks.find(uContextID);
+    GuestCtrlCallbacks::iterator it =
+        mData.mCallbacks.find(VBOX_GUESTCTRL_CONTEXTID_GET_COUNT(uContextID));
     if (it == mData.mCallbacks.end())
     {
Index: /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 42438)
+++ /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 42439)
@@ -385,10 +385,4 @@
     LogFlowFunc(("uProcessID=%RU32 (%RU32 total)\n",
                  uProcessID, mData.mProcesses.size()));
-    SessionProcesses::const_iterator i = mData.mProcesses.begin();
-    while (i != mData.mProcesses.end())
-    {
-        LogFlowFunc(("\tproc %RU32\n", i->first));
-        i++;
-    }
 #endif
     int rc;
@@ -532,5 +526,5 @@
 }
 
-inline bool GuestSession::processExists(ULONG uProcessID, ComObjPtr<GuestProcess> *pProcess)
+inline bool GuestSession::processExists(uint32_t uProcessID, ComObjPtr<GuestProcess> *pProcess)
 {
     SessionProcesses::const_iterator it = mData.mProcesses.find(uProcessID);
