diff --git a/dlls/wineoss.drv/mmaux.c b/dlls/wineoss.drv/mmaux.c
index de5ecead6a8dc844b27b5cab5dd2e584135278b0..ff62107f32d24c0fe9f409c8f1a0de94745151db 100644
--- a/dlls/wineoss.drv/mmaux.c
+++ b/dlls/wineoss.drv/mmaux.c
@@ -143,6 +143,7 @@ static DWORD AUX_GetVolume(WORD wDevID, LPDWORD lpdwVol)
 	break;
     default:
 	WARN("invalid device id=%04X !\n", wDevID);
+	close(mixer);
 	return MMSYSERR_NOTENABLED;
     }
     if (ioctl(mixer, cmd, &volume) == -1) {
@@ -205,6 +206,7 @@ static DWORD AUX_SetVolume(WORD wDevID, DWORD dwParam)
 	break;
     default:
 	WARN("invalid device id=%04X !\n", wDevID);
+	close(mixer);
 	return MMSYSERR_NOTENABLED;
     }
     if (ioctl(mixer, cmd, &volume) == -1) {