diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt
index 7fb1db15fb232128978c99d56edba439e06cfd20..8054eb36199cdf57ebc8bafea46b1c026911b00a 100644
--- a/indra/llui/CMakeLists.txt
+++ b/indra/llui/CMakeLists.txt
@@ -3,6 +3,7 @@
 project(llui)
 
 include(00-Common)
+include(Hunspell)
 include(LLCommon)
 include(LLImage)
 include(LLInventory)
@@ -294,7 +295,11 @@ if(LL_TESTS)
       )
   LL_ADD_PROJECT_UNIT_TESTS(llui "${llui_TEST_SOURCE_FILES}")
   # INTEGRATION TESTS
-  set(test_libs llui llmessage llcorehttp llcommon ${LLCOMMON_LIBRARIES} ${BOOST_COROUTINE_LIBRARY} ${BOOST_CONTEXT_LIBRARY} ${BOOST_SYSTEM_LIBRARY} ${WINDOWS_LIBRARIES})
+  set(test_libs llui llmessage llcorehttp llcommon
+      ${HUNSPELL_LIBRARY}
+      ${LLCOMMON_LIBRARIES}
+      ${BOOST_COROUTINE_LIBRARY} ${BOOST_CONTEXT_LIBRARY} ${BOOST_SYSTEM_LIBRARY}
+      ${WINDOWS_LIBRARIES})
   if(NOT LINUX)
     LL_ADD_INTEGRATION_TEST(llurlentry llurlentry.cpp "${test_libs}")
   endif(NOT LINUX)
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 4f664a1ccc2a4c3cdd7d267b6682a552fca203e6..e0f2a12a27b8caf35c4be72177bf21b801cea44e 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -64,8 +64,6 @@
 // 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()
@@ -653,13 +651,22 @@ void LLFloater::openFloater(const LLSD& key)
 		&& !getFloaterHost()
 		&& (!getVisible() || isMinimized()))
 	{
-        //Don't play a sound for incoming voice call based upon chat preference setting
-        bool playSound = !(getName() == "incoming call" && gSavedSettings.getBOOL("PlaySoundIncomingVoiceCall") == FALSE);
+		// gSavedSettings is a global instance of LLControlGroup, but since
+		// LLControlGroup is derived from LLInstanceTracker, we can also look
+		// it up by name.
+		LLControlGroup* gSavedSettingsp = LLControlGroup::getInstance("Global");
+		//Play a sound for incoming voice call based upon chat preference setting.
+		//If it's not an incoming call, play it anyway.
+		//If we can't find gSavedSettings, play it anyway.
+		//If the setting is ON, play it anyway.
+		bool playSound = (getName() != "incoming call" ||
+						  (! gSavedSettingsp) ||
+						  gSavedSettingsp->getBOOL("PlaySoundIncomingVoiceCall"));
 
-        if(playSound)
-        {
-            make_ui_sound("UISndWindowOpen");
-        }
+		if(playSound)
+		{
+			make_ui_sound("UISndWindowOpen");
+		}
 	}
 
 	//RN: for now, we don't allow rehosting from one multifloater to another
diff --git a/indra/llui/tests/llurlentry_test.cpp b/indra/llui/tests/llurlentry_test.cpp
index 233fb6da23451ee3bdc02410a8581352f303d79b..119cbebc8146f693a69fcacef545605a28a9a1ff 100644
--- a/indra/llui/tests/llurlentry_test.cpp
+++ b/indra/llui/tests/llurlentry_test.cpp
@@ -28,7 +28,7 @@
 #include "linden_common.h"
 #include "../llurlentry.h"
 #include "../lluictrl.h"
-#include "llurlentry_stub.cpp"
+//#include "llurlentry_stub.cpp"
 #include "lltut.h"
 #include "../lluicolortable.h"
 #include "../llrender/lluiimage.h"
@@ -49,6 +49,7 @@
 // 
 // }
 
+/*==========================================================================*|
 typedef std::map<std::string, LLControlGroup*> settings_map_t;
 settings_map_t LLUI::sSettingGroups;
 
@@ -83,6 +84,7 @@ S32 LLUIImage::getHeight() const
 {
 	return 0;
 }
+|*==========================================================================*/
 
 namespace tut
 {