diff --git a/Alc/backends/winmm.c b/Alc/backends/winmm.c
index 9d8f8e9..8c8e44a 100644
--- a/Alc/backends/winmm.c
+++ b/Alc/backends/winmm.c
@@ -219,7 +219,7 @@ FORCE_ALIGN static int ALCwinmmPlayback_mixerProc(void *arg)
     SetRTPriority();
     althrd_setname(althrd_current(), MIXER_THREAD_NAME);
 
-    while(GetMessage(&msg, NULL, 0, 0))
+    if (!self->killNow) while(GetMessage(&msg, NULL, 0, 0))
     {
         if(msg.message != WOM_DONE)
             continue;
@@ -504,7 +504,7 @@ static int ALCwinmmCapture_captureProc(void *arg)
 
     althrd_setname(althrd_current(), RECORD_THREAD_NAME);
 
-    while(GetMessage(&msg, NULL, 0, 0))
+    if (!self->killNow) while(GetMessage(&msg, NULL, 0, 0))
     {
         if(msg.message != WIM_DATA)
             continue;
