diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 0e57ba02bfdc78e199543700098ca8a27afb77e3..3ab66f3321baaa2253d9e6f6fc6cbde5cdd8577c 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -64,6 +64,8 @@
 // use this to control "jumping" behavior when Ctrl-Tabbing
 const S32 TABBED_FLOATER_OFFSET = 0;
 
+extern LLControlGroup gSavedSettings;
+
 namespace LLInitParam
 {
 	void TypeValues<LLFloaterEnums::EOpenPositioning>::declareValues()
@@ -660,7 +662,18 @@ void LLFloater::openFloater(const LLSD& key)
 		&& !getFloaterHost()
 		&& (!getVisible() || isMinimized()))
 	{
-		make_ui_sound("UISndWindowOpen");
+        bool playSound = true;
+
+        //Don't play a sound for incoming voice call based upon chat preference setting
+        if(getName() == "incoming call" && gSavedSettings.getBOOL("PlaySoundIncomingVoiceCall") == FALSE)
+        {
+            playSound = false;
+        }
+
+        if(playSound)
+        {
+            make_ui_sound("UISndWindowOpen");
+        }
 	}
 
 	//RN: for now, we don't allow rehosting from one multifloater to another
diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp
index 929b7da0810a3f24400be51d7693f13e35844614..fe84dbbdaf47fcc4b1a3a1a115dc321e0a55dcda 100644
--- a/indra/llui/llnotifications.cpp
+++ b/indra/llui/llnotifications.cpp
@@ -899,6 +899,11 @@ bool LLNotification::hasFormElements() const
 	return mTemplatep->mForm->getNumElements() != 0;
 }
 
+void LLNotification::playSound()
+{ 
+    LLUI::sAudioCallback(mTemplatep->mSoundEffect);
+}
+
 LLNotification::ECombineBehavior LLNotification::getCombineBehavior() const
 {
 	return mTemplatep->mCombineBehavior;
diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h
index c677dfe2986cbf0b0fbec0b7168934d2b81a8713..088931858ae22efcc3c1dc45f6a07a225fef995b 100644
--- a/indra/llui/llnotifications.h
+++ b/indra/llui/llnotifications.h
@@ -524,6 +524,7 @@ friend class LLNotifications;
 	bool canLogToIM() const;
 	bool canShowToast() const;
 	bool hasFormElements() const;
+    void playSound();
 
 	typedef enum e_combine_behavior
 	{
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 0f4bbd054a099def917fdb898b36b7978fbd52e0..f7b182e8918b2eb23a731ea8d96b55439d0a83bd 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -2494,7 +2494,11 @@ void LLIMMgr::addMessage(
 			return;
 		}
 
-		make_ui_sound("UISndNewIncomingIMSession");
+        //Play sound for new conversations
+        if(gSavedSettings.getBOOL("PlaySoundNewConversation") == TRUE)
+        {
+            make_ui_sound("UISndNewIncomingIMSession");
+        }
 	}
 
 	bool skip_message = (gSavedSettings.getBOOL("VoiceCallsFriendsOnly") &&
diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp
index ccad49bc30ff2fd27a4e015c07a1c97740a39855..8672dc479d6d0b5ddda494081715ff3de7623777 100644
--- a/indra/newview/lltoastnotifypanel.cpp
+++ b/indra/newview/lltoastnotifypanel.cpp
@@ -493,6 +493,21 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images )
 	}
 	// adjust panel's height to the text size
 	snapToMessageHeight(mTextBox, MAX_LENGTH);
+
+    bool playSound = true;
+
+    if((mNotification->getName() == "UserGiveItem"
+            && gSavedSettings.getBOOL("PlaySoundInventoryOffer") == FALSE)
+        ||  mNotification->getName() == "TeleportOffered"
+            && gSavedSettings.getBOOL("PlaySoundTeleportOffer") == FALSE)
+    {
+        playSound = false;
+    }
+
+    if(playSound)
+    {
+        mNotification->playSound();
+    }
 }
 
 
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 6c2ad869ac0d4d7440b88b4903972f8ec9de732e..bf2bfaf3866cc4d0511e297e6694f7ff8f0be6b9 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -6460,7 +6460,8 @@ Your object named &lt;nolink&gt;[OBJECTFROMNAME]&lt;/nolink&gt; has given you th
    icon="notify.tga"
    name="UserGiveItem"
    log_to_im ="true"
-   type="offer">
+   type="offer"
+   sound="UISndNewIncomingIMSession">
 [NAME_SLURL] has given you this [OBJECTTYPE]:
 [ITEM_SLURL]
     <form name="form">
@@ -6517,7 +6518,8 @@ Your object named &lt;nolink&gt;[OBJECTFROMNAME]&lt;/nolink&gt; has given you th
    name="TeleportOffered"
    log_to_im="true"
    log_to_chat="false"
-   type="offer">
+   type="offer"
+   sound="UISndNewIncomingIMSession">
 [NAME_SLURL] has offered to teleport you to their location:
 
 “[MESSAGE]”
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
index 8ab5c9a99c0509abbdc0e07dddfdc80074b2230b..712e8bff7fcbcaaf31dd5c57d757ed0127d9e55b 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
@@ -322,6 +322,7 @@
         name="incoming_voice_call"
         width="150" />
     <check_box
+        enabled="false"
         control_name="PlaySoundGroupChatMessages"
         height="16"
         label="Group chat messages"