Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 26697)
+++ /trunk/Config.kmk	(revision 26698)
@@ -465,6 +465,8 @@
 # Enable the host/guest information service (aka guest properties).
 VBOX_WITH_GUEST_PROPS = 1
-# Enable this to prevent the guest from writing guest properties
+# Enable this to prevent the guest from writing guest properties.
 VBOX_WITH_GUEST_PROPS_RDONLY_GUEST =
+# Enable the guest control service.
+VBOX_WITH_GUEST_CONTROL =
 # Enable crOpenGL service
 if1of ($(KBUILD_TARGET), darwin freebsd linux solaris win)
Index: /trunk/include/VBox/VBoxGuestLib.h
===================================================================
--- /trunk/include/VBox/VBoxGuestLib.h	(revision 26697)
+++ /trunk/include/VBox/VBoxGuestLib.h	(revision 26698)
@@ -505,4 +505,10 @@
 # endif /* VBOX_WITH_GUEST_PROPS defined */
 
+/** @name Guest control
+ * @{ */
+VBGLR3DECL(int)     VbglR3GuestCtrlConnect(uint32_t *pu32ClientId);
+VBGLR3DECL(int)     VbglR3GuestCtrlDisconnect(uint32_t u32ClientId);
+/** @}  */
+
 /** @name User credentials handling
  * @{ */
Index: /trunk/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk	(revision 26697)
+++ /trunk/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk	(revision 26698)
@@ -110,4 +110,9 @@
 	VBoxGuestR3LibHostVersion.cpp
 endif
+ifdef VBOX_WITH_GUEST_CONTROL
+ VBoxGuestR3Lib_SOURCES   += \
+	VBoxGuestR3LibGuestCtrl.cpp
+endif
+
 VBoxGuestR3LibMisc.cpp_DEFS = VBOX_SVN_REV=$(VBOX_SVN_REV)
 VBoxGuestR3LibMisc.cpp_DEPS = $(VBOX_SVN_REV_KMK)
Index: /trunk/src/VBox/Additions/common/VBoxService/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxService/Makefile.kmk	(revision 26697)
+++ /trunk/src/VBox/Additions/common/VBoxService/Makefile.kmk	(revision 26698)
@@ -41,4 +41,9 @@
   VBoxService_DEFS       += VBOX_WITH_HGCM VBOXSERVICE_EXEC
  endif
+ifdef VBOX_WITH_GUEST_CONTROL
+ if1of ($(KBUILD_TARGET), win)
+  VBoxService_DEFS        += VBOXSERVICE_CONTROL
+ endif
+endif
 endif
 if1of ($(KBUILD_TARGET), linux)
@@ -50,4 +55,10 @@
 	VBoxServiceTimeSync.cpp \
 	VBoxServiceUtils.cpp
+ifdef VBOX_WITH_GUEST_CONTROL
+ if1of ($(KBUILD_TARGET), win)
+  VBoxService_SOURCES    += \
+	VBoxServiceControl.cpp
+ endif
+endif
 ifdef VBOX_WITH_GUEST_PROPS
  VBoxService_SOURCES.win  = \
Index: /trunk/src/VBox/HostServices/Makefile.kmk
===================================================================
--- /trunk/src/VBox/HostServices/Makefile.kmk	(revision 26697)
+++ /trunk/src/VBox/HostServices/Makefile.kmk	(revision 26698)
@@ -40,4 +40,7 @@
  include $(PATH_SUB_CURRENT)/GuestProperties/Makefile.kmk
 endif
+ifdef VBOX_WITH_GUEST_CONTROL
+ include $(PATH_SUB_CURRENT)/GuestControl/Makefile.kmk
+endif
 include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
 
