Index: /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceBalloon.cpp
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceBalloon.cpp	(revision 29319)
+++ /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceBalloon.cpp	(revision 29320)
@@ -260,5 +260,5 @@
     if (RT_SUCCESS(rc))
     {
-        VBoxServiceVerbose(3, "VBoxMemBalloonInit: new balloon size %d MB (%s memory)\n",
+        VBoxServiceVerbose(3, "MemBalloon: New balloon size %d MB (%s memory)\n",
                            cNewChunks, fHandleInR3 ? "R3" : "R0");
         if (fHandleInR3)
@@ -268,9 +268,20 @@
     }
     else
-        VBoxServiceVerbose(3, "VBoxMemBalloonInit: VbglR3MemBalloonRefresh failed with %Rrc\n", rc);
-
-    /* We shouldn't fail here if ballooning isn't available. This can have several reasons,
-     * for instance, host too old  (which is not that fatal). */
-    return VINF_SUCCESS;
+    {
+        if (rc == VERR_INVALID_PARAMETER) /* Host service is not available. */
+            VBoxServiceVerbose(0, "MemBalloon: Memory ballooning support is not available\n");
+        else
+            VBoxServiceVerbose(3, "MemBalloon: VbglR3MemBalloonRefresh failed with %Rrc\n", rc);
+        RTSemEventMultiDestroy(g_MemBalloonEvent);
+        g_MemBalloonEvent = NIL_RTSEMEVENTMULTI;
+
+        /* 
+         * Not having the guest control service on the host renders this whole service
+         * unusable, so report that we are not able to continue. 
+         */
+        rc = VERR_NOT_SUPPORTED;
+    }
+
+    return rc;
 }
 
