Index: /trunk/src/VBox/Main/glue/vboxapi.py
===================================================================
--- /trunk/src/VBox/Main/glue/vboxapi.py	(revision 66616)
+++ /trunk/src/VBox/Main/glue/vboxapi.py	(revision 66617)
@@ -439,4 +439,20 @@
         self.winerror = winerror
 
+        # Setup client impersonation in COM calls
+        try:
+            pythoncom.CoInitializeSecurity(None, 
+                                       None, 
+                                       None, 
+                                       pythoncom.RPC_C_AUTHN_LEVEL_DEFAULT, 
+                                       pythoncom.RPC_C_IMP_LEVEL_IMPERSONATE, 
+                                       None, 
+                                       pythoncom.EOAC_NONE,
+                                       None)
+        except:
+            # handle RPC_E_TOO_LATE (repeat call of CoInitializeSecurity)
+            print("Warning: CoInitializeSecurity was already called")
+            pass
+        
+
         pid = GetCurrentProcess()
         self.tid = GetCurrentThreadId()
@@ -465,4 +481,7 @@
         win32com.client.gencache.EnsureDispatch('VirtualBox.VirtualBox')
         win32com.client.gencache.EnsureDispatch('VirtualBox.VirtualBoxClient')
+
+        # instance of client used to support lifetime of VBoxSDS
+        self.client = None
 
         self.oIntCv = threading.Condition()
@@ -508,6 +527,10 @@
         import win32com
         from win32com.client import Dispatch
-        client = win32com.client.Dispatch("VirtualBox.VirtualBoxClient")
-        return client.virtualBox
+        # Caching self.client is the trick for SDS
+        # It's allows to keep the VBoxSDS in the memory 
+        # until the end of PlatformMSCOM lifetme
+        if self.client is None:
+            self.client = win32com.client.Dispatch("VirtualBox.VirtualBoxClient")
+        return self.client.virtualBox
 
     def getType(self):
Index: /trunk/src/VBox/ValidationKit/testdriver/vboxinstaller.py
===================================================================
--- /trunk/src/VBox/ValidationKit/testdriver/vboxinstaller.py	(revision 66616)
+++ /trunk/src/VBox/ValidationKit/testdriver/vboxinstaller.py	(revision 66617)
@@ -308,5 +308,5 @@
                 if sBase in [ 'vboxsvc', 'virtualbox', 'virtualboxvm', 'vboxheadless', 'vboxmanage', 'vboxsdl', 'vboxwebsrv',
                               'vboxautostart', 'vboxballoonctrl', 'vboxbfe', 'vboxextpackhelperapp', 'vboxnetdhcp',
-                              'vboxnetadpctl', 'vboxtestogl', 'vboxtunctl', 'vboxvmmpreload', 'vboxxpcomipcd', 'vmCreator', ]:
+                              'vboxnetadpctl', 'vboxtestogl', 'vboxtunctl', 'vboxvmmpreload', 'vboxxpcomipcd', 'vmCreator', 'vboxsds' ]:
                     aoTodo.append(oProcess);
                 if sBase.startswith('virtualbox-') and sBase.endswith('-multiarch.exe'):
