Index: /trunk/src/VBox/Devices/Audio/audio.c
===================================================================
--- /trunk/src/VBox/Devices/Audio/audio.c	(revision 35115)
+++ /trunk/src/VBox/Devices/Audio/audio.c	(revision 35116)
@@ -937,4 +937,7 @@
         }
 
+        if (ret + osamp > sw->buf_samples)
+            Log(("audio_pcm_sw_read: buffer overflow!! ret = %d, osamp = %d, buf_samples = %d\n",
+                  ret, osamp, sw->buf_samples));
         st_rate_flow (sw->rate, src, dst, &isamp, &osamp);
         swlim -= osamp;
@@ -945,4 +948,6 @@
     }
 
+    if (ret > sw->buf_samples)
+        Log(("audio_pcm_sw_read: buffer overflow!! ret = %d, buf_samples = %d\n", ret, sw->buf_samples));
     sw->clip (buf, sw->buf, ret);
     sw->total_hw_samples_acquired += total;
@@ -1036,4 +1041,7 @@
     swlim = ((int64_t) dead << 32) / sw->ratio;
     swlim = audio_MIN (swlim, samples);
+    if (swlim > sw->buf_samples)
+        Log(("audio_pcm_sw_write: buffer overflow!! swlim = %d, buf_samples = %d\n",
+             swlim, pos, sw->buf_samples));
     if (swlim) {
 #ifndef VBOX
@@ -1053,4 +1061,7 @@
         isamp = swlim;
         osamp = blck;
+        if (pos + isamp > sw->buf_samples)
+            Log(("audio_pcm_sw_write: buffer overflow!! isamp = %d, pos = %d, buf_samples = %d\n",
+                 isamp, pos, sw->buf_samples));
         st_rate_flow_mix (
             sw->rate,
Index: /trunk/src/VBox/Devices/Audio/audio_int.h
===================================================================
--- /trunk/src/VBox/Devices/Audio/audio_int.h	(revision 35115)
+++ /trunk/src/VBox/Devices/Audio/audio_int.h	(revision 35116)
@@ -122,4 +122,5 @@
     int64_t ratio;
     st_sample_t *buf;
+    int buf_samples;
     void *rate;
     int total_hw_samples_mixed;
@@ -140,4 +141,5 @@
     int total_hw_samples_acquired;
     st_sample_t *buf;
+    int buf_samples; /* for debugging only */
     f_sample *clip;
     HWVoiceIn *hw;
Index: /trunk/src/VBox/Devices/Audio/audio_template.h
===================================================================
--- /trunk/src/VBox/Devices/Audio/audio_template.h	(revision 35115)
+++ /trunk/src/VBox/Devices/Audio/audio_template.h	(revision 35116)
@@ -105,4 +105,5 @@
     sw->buf = NULL;
     sw->rate = NULL;
+    sw->buf_samples = 0;
 }
 
@@ -112,4 +113,5 @@
 
     samples = ((int64_t) sw->hw->samples << 32) / sw->ratio;
+    sw->buf_samples = 0;
 
     sw->buf = audio_calloc (AUDIO_FUNC, samples, sizeof (st_sample_t));
@@ -130,4 +132,6 @@
         return -1;
     }
+
+    sw->buf_samples = samples;
     return 0;
 }
