Index: /trunk/src/VBox/Devices/Audio/DrvAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 76893)
+++ /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 76894)
@@ -1462,15 +1462,15 @@
                   DrvAudioHlpFramesToMilli(cfLive, &pStream->Host.Cfg.Props), uLivePercent, pStream->fThresholdReached));
 
-        /* Has the treshold been reached (e.g. are we in playing stage) and we now have no live samples to process? */
-        if (   pStream->fThresholdReached
-            && cfLive == 0)
-        {
-            LogRel2(("Audio: Buffer underrun for stream '%s' occurred (%RU64ms passed but only %RU64ms in buffer)\n",
-                     pStream->szName,
-                     DrvAudioHlpFramesToMilli(cfPassedReal, &pStream->Host.Cfg.Props),
-                     DrvAudioHlpFramesToMilli(cfLive, &pStream->Host.Cfg.Props)));
-
-            /* Enter buffering stage again. */
-            pStream->fThresholdReached = false;
+        if (   pStream->fThresholdReached         /* Has the treshold been reached (e.g. are we in playing stage) ... */
+            && cfLive == 0)                       /* ... and we now have no live samples to process? */
+        {
+            LogRel2(("Audio: Buffer underrun for stream '%s' occurred (%RU64ms passed)\n",
+                     pStream->szName, DrvAudioHlpFramesToMilli(cfPassedReal, &pStream->Host.Cfg.Props)));
+
+            if (pStream->Host.Cfg.Backend.cfPreBuf) /* Any pre-buffering configured? */
+            {
+                /* Enter pre-buffering stage again. */
+                pStream->fThresholdReached = false;
+            }
         }
 
