Index: /trunk/src/VBox/Runtime/common/misc/lockvalidator.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/misc/lockvalidator.cpp	(revision 79785)
+++ /trunk/src/VBox/Runtime/common/misc/lockvalidator.cpp	(revision 79786)
@@ -3373,6 +3373,11 @@
                  || pRecU->Excl.hClass->cMsMinDeadlock > RT_INDEFINITE_WAIT))
         rc = VINF_SUCCESS;
-    else if (!rtLockValidatorIsSimpleNoDeadlockCase(pRecU))
-        rc = rtLockValidatorDeadlockDetection(pRecU, pThreadSelf, pSrcPos);
+    else
+    {
+        rtLockValidatorSerializeDetectionEnter();
+        if (!rtLockValidatorIsSimpleNoDeadlockCase(pRecU))
+            rc = rtLockValidatorDeadlockDetection(pRecU, pThreadSelf, pSrcPos);
+        rtLockValidatorSerializeDetectionLeave();
+    }
 
     if (RT_SUCCESS(rc))
@@ -3675,6 +3680,11 @@
                  || pRec->hClass->cMsMinDeadlock > cMillies))
         rc = VINF_SUCCESS;
-    else if (!rtLockValidatorIsSimpleNoDeadlockCase(pRecU))
-        rc = rtLockValidatorDeadlockDetection(pRecU, pThreadSelf, pSrcPos);
+    else
+    {
+        rtLockValidatorSerializeDetectionEnter();
+        if (!rtLockValidatorIsSimpleNoDeadlockCase(pRecU))
+            rc = rtLockValidatorDeadlockDetection(pRecU, pThreadSelf, pSrcPos);
+        rtLockValidatorSerializeDetectionLeave();
+    }
 
     if (RT_SUCCESS(rc))
