diff --git a/indra/newview/llteleporthistory.cpp b/indra/newview/llteleporthistory.cpp
index b872053d3f09d7c08df42bbb562670b9584d7807..3ece12931c6ffe365aa3b3c12ed76f0f8cb5e521 100644
--- a/indra/newview/llteleporthistory.cpp
+++ b/indra/newview/llteleporthistory.cpp
@@ -118,6 +118,20 @@ void LLTeleportHistory::handleLoginComplete()
 	updateCurrentLocation(gAgent.getPositionGlobal());
 }
 
+static void on_avatar_name_update_title(const LLAvatarName& av_name)
+{
+	if (gAgent.getRegion() && gViewerWindow && gViewerWindow->getWindow())
+	{
+		std::string region = gAgent.getRegion()->getName();
+		std::string username = av_name.getUserName();
+
+		// this first pass simply displays username and region name
+		// but could easily be extended to include other details like
+		// X/Y/Z location within a region etc.
+		std::string new_title = STRINGIZE(username << " @ " << region);
+		gViewerWindow->getWindow()->setTitle(new_title);
+	}	
+}
 
 void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)
 {
@@ -184,21 +198,7 @@ void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)
     // setting to allow it is enabled (may be useful in other situations)
     if (gNonInteractive || gSavedSettings.getBOOL("UpdateAppWindowTitleBar"))
     {
-        LLAvatarName av_name;
-        if (LLAvatarNameCache::get(gAgent.getID(), &av_name))
-        {
-            if (gAgent.getRegion() && gViewerWindow && gViewerWindow->getWindow())
-            {
-                std::string region = gAgent.getRegion()->getName();
-                std::string username = av_name.getUserName();
-
-                // this first pass simply displays username and region name
-                // but could easily be extended to include other details like
-                // X/Y/Z location within a region etc.
-                std::string new_title = STRINGIZE(username << " @ " << region);
-                gViewerWindow->getWindow()->setTitle(new_title);
-            }
-        }
+		LLAvatarNameCache::get(gAgent.getID(), boost::bind(&on_avatar_name_update_title, _2));
     }
 
 	// Signal the interesting party that we've changed.