diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index 87b8d807c4e8f78f46abc4d6d0ff372273ab6727..abb79b53a7548d1c5c3bd0e2a71e6223b2b60f32 100644
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -244,7 +244,10 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
 		LLIconCtrl::setValue(value);
 	}
 
-	gCacheName->get(mAvatarId, FALSE, boost::bind(&LLAvatarIconCtrl::nameUpdatedCallback, this, _1, _2, _3, _4));
+	if  (gCacheName)
+	{
+		gCacheName->get(mAvatarId, FALSE, boost::bind(&LLAvatarIconCtrl::nameUpdatedCallback, this, _1, _2, _3, _4));
+	}
 }
 
 bool LLAvatarIconCtrl::updateFromCache()
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index df5be34e39c0dde4eba74c12ca7ce2f0213cabff..3ef190f766104edb8856f9a84d63c4b48dabcde4 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -1116,8 +1116,6 @@ bool idle_startup()
 				LLVoiceClient::getInstance()->userAuthorized(gUserCredential->userID(), gAgentID);
 				// create the default proximal channel
 				LLVoiceChannel::initClass();
-				// update the voice settings
-				LLVoiceClient::getInstance()->updateSettings();
 				LLGridManager::getInstance()->setFavorite(); 
 				LLStartUp::setStartupState( STATE_WORLD_INIT);
 			}
@@ -1300,6 +1298,10 @@ bool idle_startup()
             LLAppViewer::instance()->loadNameCache();
 		}
 
+		// update the voice settings *after* gCacheName initialization
+		// so that we can construct voice UI that relies on the name cache
+		LLVoiceClient::getInstance()->updateSettings();
+
 		//gCacheName is required for nearby chat history loading
 		//so I just moved nearby history loading a few states further
 		if (!gNoRender && gSavedPerAccountSettings.getBOOL("LogShowHistory"))