diff --git a/doc/contributions.txt b/doc/contributions.txt
index 06807ffb5d098131be6aa630e79ba95884f64a87..d33c448416a63390644ca6bf3cc130fd3178f5c4 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -442,6 +442,7 @@ Jonathan Yap
 	STORM-1095
 	STORM-1236
 	STORM-1259
+	STORM-787
 	STORM-899
 	STORM-1273
 Kage Pixel
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 6074a86d8859db6c6e7755d684d7b37e5a173766..a395fe3606bfdbd279c84cabd1159e9128b1a0ba 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -3058,6 +3058,17 @@
       <key>Value</key>
       <integer>1</integer>
     </map>
+    <key>EnableGestureSounds</key>
+    <map>
+      <key>Comment</key>
+      <string>Play sounds from gestures</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>1</integer>
+    </map>
     <key>EnableMouselook</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 60a2f813aaff98a963a38371f4ab8801e7f6e6f3..7848484ac6d34b28cc33727d041f4f643cf146f8 100755
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -327,6 +327,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
 	mCommitCallbackRegistrar.add("Pref.SelectSkin",				boost::bind(&LLFloaterPreference::onSelectSkin, this));
 	mCommitCallbackRegistrar.add("Pref.VoiceSetKey",			boost::bind(&LLFloaterPreference::onClickSetKey, this));
 	mCommitCallbackRegistrar.add("Pref.VoiceSetMiddleMouse",	boost::bind(&LLFloaterPreference::onClickSetMiddleMouse, this));
+	mCommitCallbackRegistrar.add("Pref.SetSounds",				boost::bind(&LLFloaterPreference::onClickSetSounds, this));
 //	mCommitCallbackRegistrar.add("Pref.ClickSkipDialogs",		boost::bind(&LLFloaterPreference::onClickSkipDialogs, this));
 //	mCommitCallbackRegistrar.add("Pref.ClickResetDialogs",		boost::bind(&LLFloaterPreference::onClickResetDialogs, this));
 	mCommitCallbackRegistrar.add("Pref.ClickEnablePopup",		boost::bind(&LLFloaterPreference::onClickEnablePopup, this));
@@ -1286,6 +1287,14 @@ void LLFloaterPreference::onClickSetMiddleMouse()
 		p2t_line_editor->setValue(advanced_preferences->getString("middle_mouse"));
 	}
 }
+
+void LLFloaterPreference::onClickSetSounds()
+{
+	// Disable Enable gesture sounds checkbox if the master sound is disabled 
+	// or if sound effects are disabled.
+	getChild<LLCheckBoxCtrl>("gesture_audio_play_btn")->setEnabled(!gSavedSettings.getBOOL("MuteSounds"));
+}
+
 /*
 void LLFloaterPreference::onClickSkipDialogs()
 {
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index ef9257534763f7d29f42012f2fdd5dec6e4fed73..61f2c786401cc02331ba63ca556422835f7ebc7e 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -129,6 +129,7 @@ class LLFloaterPreference : public LLFloater, public LLAvatarPropertiesObserver
 	void onClickSetKey();
 	void setKey(KEY key);
 	void onClickSetMiddleMouse();
+	void onClickSetSounds();
 //	void onClickSkipDialogs();
 //	void onClickResetDialogs();
 	void onClickEnablePopup();
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 3832be727fcc331af2371065562ceedee33ca792..0aada644f303da620544b40420b366a2b246eb97 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -4332,6 +4332,9 @@ void process_sound_trigger(LLMessageSystem *msg, void **)
 	{
 		return;
 	}
+
+	// Don't play sounds from gestures if they are not enabled.
+	if (!gSavedSettings.getBOOL("EnableGestureSounds")) return;
 		
 	gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX, pos_global);
 }
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
index 91fe6f544c3e9dab81c8e4c6a8ac581e900e07e1..1745c1e4b0e2f8b0fe862e697bfc0dcae47c743c 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
@@ -123,8 +123,8 @@
          function="Pref.setControlFalse"
          parameter="MuteAmbient" />
     </slider>
-        <button
-    control_name="MuteAmbient"
+    <button
+     control_name="MuteAmbient"
      disabled_control="MuteAudio"
      follows="top|left"
      height="16"
@@ -157,7 +157,7 @@
          function="Pref.setControlFalse"
          parameter="MuteSounds" />
     </slider>
-   <button
+    <button
      control_name="MuteSounds"
      disabled_control="MuteAudio"
      follows="top|left"
@@ -169,7 +169,10 @@
      left_pad="5"
      name="mute_audio"
      tab_stop="false"
-     width="16" />
+     width="16">
+      <button.commit_callback
+      function="Pref.SetSounds"/>
+    </button>
     <slider
      control_name="AudioLevelMusic"
      disabled_control="MuteAudio"
@@ -332,7 +335,17 @@
 		label="Play media attached to other avatars"
 		left="25"
     width="230"/>
-
+	<check_box
+		name="gesture_audio_play_btn"
+		control_name="EnableGestureSounds"
+        disabled_control="MuteAudio"
+		value="true"
+		follows="left|bottom|right"
+		height="15"
+		tool_tip="Check this to hear sounds from gestures"
+		label="Play sounds from gestures"
+		top_pad="1"
+		left="25"/>
     <text
      type="string"
      length="1"