Index: alsamixer.c
===================================================================
RCS file: /cvsroot/alsa/alsa-utils/alsamixer/alsamixer.c,v
retrieving revision 1.64
diff -c -w -u -r1.64 alsamixer.c
--- alsamixer.c	24 Feb 2003 13:51:15 -0000	1.64
+++ alsamixer.c	28 May 2003 03:24:17 -0000
@@ -493,6 +493,7 @@
       vol1 = max;
     else
       vol1 = mixer_conv(vol1, 0, 100, min, max);
+    vol1 -= min; // convert value to a delta in units of the volume control.
     if (vol1 <= 0)
       vol1 = 1;
     if (vol < 0)
@@ -583,7 +584,9 @@
       vbalance /= 2;
     } else
       vright = vleft;
-    if (vleft >= 0 && vright >= 0) {
+    /* Leave range checking to mixer_calc_volume */
+    /* if (vleft >= 0 && vright >= 0)*/ 
+    {
       if (joined) {
 	for (chn = 0; chn < SND_MIXER_SCHN_LAST; chn++)
 	  if (type != MIXER_ELEM_CAPTURE) {
