diff --git a/dlls/winealsa.drv/waveinit.c b/dlls/winealsa.drv/waveinit.c
index 4da53c9b094a78fd7eb465e4c0eb99f03669998c..4ae93bb0124a44ca12bda57d8c823a5cf8036e53 100644
--- a/dlls/winealsa.drv/waveinit.c
+++ b/dlls/winealsa.drv/waveinit.c
@@ -105,6 +105,10 @@ static int ALSA_TestDeviceForWine(int card, int device,  snd_pcm_stream_t stream
     /* set the count of channels */
     retcode = snd_pcm_hw_params_set_channels(pcm, hwparams, 2);
     if (retcode < 0)
+    {
+        retcode = snd_pcm_hw_params_set_channels(pcm, hwparams, 1); /* If we can't open stereo, try mono; this is vital for snd_usb_audio microphones */
+    }
+    if (retcode < 0)
     {
         reason = "Could not set channels";
         goto exit;