Index: /trunk/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp	(revision 50837)
+++ /trunk/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp	(revision 50838)
@@ -147,14 +147,18 @@
         {
             rc = vbglDriverIOCtl (&pHandleData->driver, VBOXGUEST_IOCTL_HGCM_CONNECT, pData, sizeof (*pData));
-            if (   RT_SUCCESS(rc)
-                && RT_SUCCESS(pData->result))
+            if (RT_SUCCESS(rc))
+                rc = pData->result;
+            if (RT_SUCCESS(rc))
             {
                 *pHandle = pHandleData;
                 return rc;
             }
+
+            vbglDriverClose (&pHandleData->driver);
         }
+
+        vbglHGCMHandleFree (pHandleData);
     }
-    vbglDriverClose (&pHandleData->driver);
-    vbglHGCMHandleFree (pHandleData);
+
     return rc;
 }
