Index: /trunk/src/VBox/Devices/Audio/HDAStream.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/HDAStream.cpp	(revision 82419)
+++ /trunk/src/VBox/Devices/Audio/HDAStream.cpp	(revision 82420)
@@ -48,4 +48,5 @@
 int hdaR3StreamCreate(PHDASTREAM pStream, PHDASTATE pThis, uint8_t u8SD)
 {
+    int rc;
     RT_NOREF(pThis);
     AssertPtrReturn(pStream, VERR_INVALID_POINTER);
@@ -62,6 +63,8 @@
 #endif
 
-    int rc = RTCritSectInit(&pStream->CritSect);
+# ifdef VBOX_WITH_AUDIO_HDA_ASYNC_IO
+    rc = RTCritSectInit(&pStream->CritSect);
     AssertRCReturn(rc, rc);
+# endif
 
     rc = hdaR3StreamPeriodCreate(&pStream->State.Period);
@@ -146,4 +149,5 @@
 #endif
 
+# ifdef VBOX_WITH_AUDIO_HDA_ASYNC_IO
     if (RTCritSectIsInitialized(&pStream->CritSect))
     {
@@ -151,4 +155,5 @@
         AssertRC(rc2);
     }
+# endif
 
     if (pStream->State.pCircBuf)
@@ -1589,6 +1594,10 @@
 {
     AssertPtrReturnVoid(pStream);
+# ifdef VBOX_WITH_AUDIO_HDA_ASYNC_IO
     int rc2 = RTCritSectEnter(&pStream->CritSect);
     AssertRC(rc2);
+# else
+    Assert(PDMDevHlpCritSectIsOwner(pStream->pHDAState->pDevInsR3, pStream->pHDAState->CritSect));
+# endif
 }
 
@@ -1602,6 +1611,8 @@
 {
     AssertPtrReturnVoid(pStream);
+# ifdef VBOX_WITH_AUDIO_HDA_ASYNC_IO
     int rc2 = RTCritSectLeave(&pStream->CritSect);
     AssertRC(rc2);
+# endif
 }
 
Index: /trunk/src/VBox/Devices/Audio/HDAStream.h
===================================================================
--- /trunk/src/VBox/Devices/Audio/HDAStream.h	(revision 82419)
+++ /trunk/src/VBox/Devices/Audio/HDAStream.h	(revision 82420)
@@ -238,6 +238,9 @@
     /** The timer for pumping data thru the attached LUN drivers. */
     TMTIMERHANDLE               hTimer;
-    /** The stream'S critical section to serialize access. */
+#ifdef VBOX_WITH_AUDIO_HDA_ASYNC_IO
+    /** The stream's critical section to serialize access between the async I/O
+     *  thread and (basically) the guest. */
     RTCRITSECT                  CritSect;
+#endif
     /** Internal state of this stream. */
     HDASTREAMSTATE              State;
