diff -Naur mp3.orrig/sta013.c mp3/sta013.c
--- mp3.orrig/sta013.c	Sun Oct 14 21:48:49 2001
+++ mp3/sta013.c	Sun Oct 14 23:31:40 2001
@@ -35,12 +35,16 @@
         setting.attn = read_param_1byte(PARM_ATTN, DEFAULT_ATTN);
         sta013_set_attenuation(setting.attn);
 
-        setting.tone_attn = STA013_MAX_TONE;
-        sta013_write(STA013_TONE_ATTEN, &setting.tone_attn);
-
         setting.treble = read_param_1byte(PARM_TREBLE, DEFAULT_TREBLE);
-        sta013_write(STA013_TREBLE, &setting.treble);
         setting.bass = read_param_1byte(PARM_BASS, DEFAULT_BASS);
+        setting.tone_attn = 0;
+        if (setting.treble > (char)setting.tone_attn)
+          setting.tone_attn = (unsigned char)setting.treble;
+        if (setting.bass > (char)setting.tone_attn)
+          setting.tone_attn = (unsigned char)setting.bass;
+
+        sta013_write(STA013_TONE_ATTEN, &setting.tone_attn);
+        sta013_write(STA013_TREBLE, &setting.treble);
         sta013_write(STA013_BASS, &setting.bass);
 
         setting.treble_freq_hi = read_param_1byte(PARM_TREBLE_FREQ_HI, DEFAULT_TREBLE_FREQ_HI);
@@ -122,6 +126,14 @@
         // clear_timer(2);
         if (++setting.treble > STA013_MAX_TONE)
                 setting.treble = STA013_MAX_TONE;
+
+        setting.tone_attn = 0;
+        if (setting.treble > (char)setting.tone_attn)
+          setting.tone_attn = (unsigned char)setting.treble;
+        if (setting.bass > (char)setting.tone_attn)
+          setting.tone_attn = (unsigned char)setting.bass;
+
+        sta013_write(STA013_TONE_ATTEN, &setting.tone_attn);
         sta013_write(STA013_TREBLE, &setting.treble);
         lcd_change(LCD_TREBLE);
 
@@ -143,7 +155,15 @@
         // clear_timer(2);
         if (--setting.treble < STA013_MAX_TONE * -1)
                 setting.treble = STA013_MAX_TONE * -1;
+
+        setting.tone_attn = 0;
+        if (setting.treble > (char)setting.tone_attn)
+          setting.tone_attn = (unsigned char)setting.treble;
+        if (setting.bass > (char)setting.tone_attn)
+          setting.tone_attn = (unsigned char)setting.bass;
+
         sta013_write(STA013_TREBLE, &setting.treble);
+        sta013_write(STA013_TONE_ATTEN, &setting.tone_attn);
         lcd_change(LCD_TREBLE);
 
         update_sta013_needed = 1;
@@ -161,6 +181,14 @@
         // clear_timer(2);
         if (++setting.bass > STA013_MAX_TONE)
                 setting.bass = STA013_MAX_TONE;
+
+        setting.tone_attn = 0;
+        if (setting.treble > (char)setting.tone_attn)
+          setting.tone_attn = (unsigned char)setting.treble;
+        if (setting.bass > (char)setting.tone_attn)
+          setting.tone_attn = (unsigned char)setting.bass;
+
+        sta013_write(STA013_TONE_ATTEN, &setting.tone_attn);
         sta013_write(STA013_BASS, &setting.bass);
         lcd_change(LCD_BASS);
 
@@ -178,7 +206,15 @@
         // clear_timer(2);
         if (--setting.bass < STA013_MAX_TONE * -1)
                 setting.bass = STA013_MAX_TONE * -1;
+
+        setting.tone_attn = 0;
+        if (setting.treble > (char)setting.tone_attn)
+          setting.tone_attn = (unsigned char)setting.treble;
+        if (setting.bass > (char)setting.tone_attn)
+          setting.tone_attn = (unsigned char)setting.bass;
+
         sta013_write(STA013_BASS, &setting.bass);
+        sta013_write(STA013_TONE_ATTEN, &setting.tone_attn);
         lcd_change(LCD_BASS);
 
         update_sta013_needed = 1;
