Index: /trunk/src/VBox/Runtime/r3/win/RTSystemQueryDmiString-win.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r3/win/RTSystemQueryDmiString-win.cpp	(revision 50852)
+++ /trunk/src/VBox/Runtime/r3/win/RTSystemQueryDmiString-win.cpp	(revision 50853)
@@ -166,6 +166,9 @@
      * Before we do anything with COM, we have to initialize it.
      */
+    bool fUninit = true;
     HRESULT hrc = rtSystemDmiWinInitialize();
-    if (FAILED(hrc))
+    if (hrc == RPC_E_CHANGED_MODE)
+        fUninit = false;  /* don't fail if already initialized */
+    else if (FAILED(hrc))
         return VERR_NOT_SUPPORTED;
 
@@ -247,5 +250,6 @@
     else
         hrc = E_OUTOFMEMORY;
-    rtSystemDmiWinTerminate();
+    if (fUninit)
+        rtSystemDmiWinTerminate();
     if (FAILED(hrc) && rc == VERR_NOT_SUPPORTED)
         rc = VERR_NOT_SUPPORTED;
