To all those who tested my previous patch, thanks.
I have a new patch which may help to resolve some of the (few) issues which cropped up. The "length not a multiple of block size" issue has been partially addressed. Also, buffer underruns should be far less frequent than the previous patch if direct hardware access is used (set registry key \HKEY_CURRENT_USER\Software\Wine\Alsa Driver\UseDirectHW to "y").
I'll leave this for a few days and if there are no reports of breakages I'll send it (as two seperate patches) to wine-patches.
Davin