--- o/emufx.c	2003-11-07 18:52:01.000000000 +0100
+++ n/emufx.c	2003-11-26 19:16:56.000000000 +0100
@@ -1181,7 +1181,7 @@
 	return err;
 }
 
-#define SND_EMU10K1_GPR_CONTROLS	41
+#define SND_EMU10K1_GPR_CONTROLS	44
 #define SND_EMU10K1_INPUTS		10
 #define SND_EMU10K1_PLAYBACK_CHANNELS	6
 #define SND_EMU10K1_CAPTURE_CHANNELS	4
@@ -1857,6 +1857,19 @@
 		VOLUME_ADDIN(icode, &ptr, capture + 0, EXTIN_AC97_L, gpr); gpr++;
 		VOLUME_ADDIN(icode, &ptr, capture + 1, EXTIN_AC97_R, gpr); gpr++;
 		snd_emu10k1_init_stereo_control(controls + i++, "AC97 Capture Volume", gpr-2, 100);
+		
+		/* AC97 Surround Playback Volume */
+		VOLUME_ADDIN(icode, &ptr, playback + 2, EXTIN_AC97_L, gpr); gpr++;
+		VOLUME_ADDIN(icode, &ptr, playback + 3, EXTIN_AC97_R, gpr); gpr++;
+		snd_emu10k1_init_stereo_control(controls + i++, "AC97 Surround Playback Volume", gpr-2, 0);
+	
+		/* AC97 Center/LFE Playback Volume */
+		OP(icode, &ptr, iACC3, GPR(tmp + 0), EXTIN(EXTIN_AC97_L), EXTIN(EXTIN_AC97_R), C_00000000);
+		OP(icode, &ptr, iMACINT0, GPR(tmp + 0), C_00000000, GPR(tmp + 0), C_00000002);
+		VOLUME(icode, &ptr, playback + 4, tmp + 0, gpr);
+		snd_emu10k1_init_mono_control(controls + i++, "AC97 Center Playback Volume", gpr++, 0);
+		VOLUME(icode, &ptr, playback + 5, tmp + 0, gpr);
+		snd_emu10k1_init_mono_control(controls + i++, "AC97 LFE Playback Volume", gpr++, 0);
 	}
 	
 	if (emu->fx8010.extin_mask & ((1<<EXTIN_SPDIF_CD_L)|(1<<EXTIN_SPDIF_CD_R))) {
