Index: /trunk/src/VBox/Main/HostImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/HostImpl.cpp	(revision 31386)
+++ /trunk/src/VBox/Main/HostImpl.cpp	(revision 31387)
@@ -1514,5 +1514,6 @@
     if (FAILED(autoCaller.rc())) return autoCaller.rc();
 
-    AutoReadLock alock(&m->usbListsLock COMMA_LOCKVAL_SRC_POS);
+    AutoReadLock alock1(this COMMA_LOCKVAL_SRC_POS);
+    AutoReadLock alock2(&m->usbListsLock COMMA_LOCKVAL_SRC_POS);
 
     data.llUSBDeviceFilters.clear();
Index: /trunk/src/VBox/Main/VirtualBoxImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/VirtualBoxImpl.cpp	(revision 31386)
+++ /trunk/src/VBox/Main/VirtualBoxImpl.cpp	(revision 31387)
@@ -3297,7 +3297,11 @@
         // leave extra data alone, it's still in the config file
 
-        /* host data (USB filters) */
-        rc = m->pHost->saveSettings(m->pMainConfigFile->host);
-        if (FAILED(rc)) throw rc;
+        /* host data (USB filters), will take host lock. */
+        {
+            mediaLock.release();
+            machinesLock.release();
+            rc = m->pHost->saveSettings(m->pMainConfigFile->host);
+            if (FAILED(rc)) throw rc;
+        }
 
         rc = m->pSystemProperties->saveSettings(m->pMainConfigFile->systemProperties);
