Index: /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp	(revision 73625)
+++ /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp	(revision 73626)
@@ -945,6 +945,4 @@
 
     int rc = RTCritSectInit(&pStream->State.CritSect);
-    if (RT_SUCCESS(rc))
-        rc = RTCircBufCreate(&pStream->State.pCircBuf, _4K); /** @todo Make this configurable. */
 
     pStream->Dbg.Runtime.fEnabled = pThis->Dbg.fEnabled;
@@ -997,12 +995,8 @@
     LogFlowFunc(("[SD%RU8]\n", pStream->u8SD));
 
+    ichac97R3StreamClose(pThis, pStream);
+
     int rc2 = RTCritSectDelete(&pStream->State.CritSect);
     AssertRC(rc2);
-
-    if (pStream->State.pCircBuf)
-    {
-        RTCircBufDestroy(pStream->State.pCircBuf);
-        pStream->State.pCircBuf = NULL;
-    }
 
 # ifdef VBOX_WITH_AUDIO_AC97_ASYNC_IO
@@ -1862,5 +1856,7 @@
             pCfg->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfg->Props.cBytes, pCfg->Props.cChannels);
 
-            rc = ichac97R3MixerAddDrvStreams(pThis, pMixSink, pCfg);
+            rc = RTCircBufCreate(&pStream->State.pCircBuf, DrvAudioHlpMilliToBytes(100 /* ms */, &pCfg->Props)); /** @todo Make this configurable. */
+            if (RT_SUCCESS(rc))
+                rc = ichac97R3MixerAddDrvStreams(pThis, pMixSink, pCfg);
         }
     }
@@ -1880,7 +1876,12 @@
 {
     RT_NOREF(pThis);
-    RT_NOREF(pStream);
 
     LogFlowFunc(("[SD%RU8]\n", pStream->u8SD));
+
+    if (pStream->State.pCircBuf)
+    {
+        RTCircBufDestroy(pStream->State.pCircBuf);
+        pStream->State.pCircBuf = NULL;
+    }
 
     return VINF_SUCCESS;
