Index: /rat/trunk/auddev_win32.c
===================================================================
--- /rat/trunk/auddev_win32.c (revision 3642)
+++ /rat/trunk/auddev_win32.c (revision 3710)
@@ -38,5 +38,5 @@
 static int  error = 0;
 static char errorText[MAXERRORLENGTH];
-static int  nLoopGain = 100;
+static int  nLoopGain = 0; /* Set 0 (from 100) as in AG version */
 #define     MAX_DEV_NAME 64
 
@@ -956,13 +956,13 @@
         while(done < buf_bytes) {
                 whCur = w32sdk_audio_write_get_buffer();
-		if (whCur == NULL) {
-			debug_msg("Write/Right out of buffers ???\n");
-			break;
-		}
-		this_write = min(buf_bytes - done, (int)blksz);
-		whCur->dwBufferLength = this_write;
-                memcpy(whCur->lpData,
-                        buf + done,
-                        this_write);
+				if (whCur == NULL) {
+					/* PO-XXX Commenting out as this may not always be a problem
+					as mentioned in AG version. It seems to happen alot in normal operation
+					debug_msg("Write/Right out of buffers ???\n");*/
+					break;
+				}
+				this_write = min(buf_bytes - done, (int)blksz);
+				whCur->dwBufferLength = this_write;
+                memcpy(whCur->lpData, buf + done, this_write);
                 done  += this_write;
                 mmr    = waveOutWrite(shWaveOut, whCur, sizeof(WAVEHDR));
@@ -1158,5 +1158,7 @@
 			mmr = waveInAddBuffer(shWaveIn, whCur, sizeof(WAVEHDR));
                         assert(mmr == MMSYSERR_NOERROR);
-			assert(whCur->dwFlags & WHDR_INQUEUE);
+			/* PO-XXX: Commenting out as it appears to be too keen a check in some instances
+			   e.g. Some drivers aren't perfect.
+			assert(whCur->dwFlags & WHDR_INQUEUE);*/
                         dwBytesUsedAtReadHead = 0;
 			added++;
