Index: data/defaultNexuiz.cfg
===================================================================
--- data/defaultNexuiz.cfg	(revision 8187)
+++ data/defaultNexuiz.cfg	(working copy)
@@ -1230,6 +1230,7 @@
 
 seta menu_skin "wickedz"
 set menu_slowmo 1
+seta menu_sounds 0 "enables menu sound effects. 1 enables click sounds, 2 also enables hover sounds"
 
 // loadfont console     gfx/vera-mono
 // loadfont sbar        gfx/vera-mono
Index: data/qcsrc/menu/item/button.c
===================================================================
--- data/qcsrc/menu/item/button.c	(revision 8187)
+++ data/qcsrc/menu/item/button.c	(working copy)
@@ -69,6 +69,8 @@
 float mousePressButton(entity me, vector pos)
 {
 	me.mouseDrag(me, pos); // verify coordinates
+	if(cvar("menu_sounds"))
+		localsound("sound/misc/menu2.wav");
 	return 1;
 }
 float mouseReleaseButton(entity me, vector pos)
@@ -86,6 +88,7 @@
 {
 	me.focusable = !me.disabled;
 }
+.float playedfocus;
 void drawButton(entity me)
 {
 	vector bOrigin, bSize;
@@ -156,5 +159,14 @@
 			me.onClick(me, me.onClickEntity);
 	}
 	me.clickTime -= frametime;
+
+	if(cvar("menu_sounds") > 1)
+		if(me.focused && !me.playedfocus)
+		{
+			localsound("sound/misc/menu1.wav");
+			me.playedfocus = 1;
+		}
+		else if(!me.focused && me.playedfocus)
+			me.playedfocus = 0;
 }
 #endif
Index: data/qcsrc/menu/item/slider.c
===================================================================
--- data/qcsrc/menu/item/slider.c	(revision 8187)
+++ data/qcsrc/menu/item/slider.c	(working copy)
@@ -212,6 +212,8 @@
 			//me.mouseDrag(me, pos);
 		}
 	}
+	if(cvar("menu_sounds"))
+		localsound("sound/misc/menu2.wav");
 	return 1;
 }
 float mouseReleaseSlider(entity me, vector pos)
Index: data/qcsrc/menu/nexuiz/dialog_settings_audio.c
===================================================================
--- data/qcsrc/menu/nexuiz/dialog_settings_audio.c	(revision 8187)
+++ data/qcsrc/menu/nexuiz/dialog_settings_audio.c	(working copy)
@@ -94,6 +94,10 @@
 		me.TD(me, 1, 2, s);
 		setDependentStringNotEqual(e, "volume", "0");
 		setDependentStringNotEqual(s, "volume", "0");
+	me.TR(me);
+	me.TR(me);
+		me.TD(me, 1, 0.8, e = makeNexuizCheckBoxEx(2, 0, "menu_sounds", "Menu sounds"));
+		setDependentStringNotEqual(e, "volume", "0");
 
 	me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
 		me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Frequency:"));
