diff --git a/indra/newview/English.lproj/language.txt b/indra/newview/English.lproj/language.txt
index bc0aa577f97f3c61d479407c5b3b194b5e2a10d7..2c4c454fdd2fd2902cc43a87d26851282de294f1 100644
--- a/indra/newview/English.lproj/language.txt
+++ b/indra/newview/English.lproj/language.txt
@@ -1 +1 @@
-en-us
\ No newline at end of file
+en
\ No newline at end of file
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 793d7b62071e9eb6524b87a391e337e51a2cbdaa..c7300fcee29ccf50f1b13109ea42507f2e92fbd5 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -2817,16 +2817,16 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
-    <key>FirstRunThisInstall</key>
+    <key>HadFirstSuccessfulLogin</key>
     <map>
       <key>Comment</key>
-      <string>Specifies that you have not run the viewer since you installed the latest update</string>
+      <string>Specifies whether you have successfully logged in at least once before</string>
       <key>Persist</key>
       <integer>1</integer>
       <key>Type</key>
       <string>Boolean</string>
       <key>Value</key>
-      <integer>1</integer>
+      <integer>0</integer>
     </map>
     <key>FirstSelectedDisabledPopups</key>
     <map>
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 2d694eefd350a8ab2e71f114463c4700b0c00cc5..2f90885df3a6907c8e56a323347f5866f7105bf5 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2611,7 +2611,7 @@ void LLAppViewer::handleViewerCrash()
 	gDebugInfo["StartupState"] = LLStartUp::getStartupStateString();
 	gDebugInfo["RAMInfo"]["Allocated"] = (LLSD::Integer) LLMemory::getCurrentRSS() >> 10;
 	gDebugInfo["FirstLogin"] = (LLSD::Boolean) gAgent.isFirstLogin();
-	gDebugInfo["FirstRunThisInstall"] = gSavedSettings.getBOOL("FirstRunThisInstall");
+	gDebugInfo["HadFirstSuccessfulLogin"] = gSavedSettings.getBOOL("HadFirstSuccessfulLogin");
 
 	if(gLogoutInProgress)
 	{
diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp
index d464862eedcf1c9c5a2b1d0e040b3da7c5fc99aa..3c34d26692db8cfd6629f8b4ae445535d815d852 100644
--- a/indra/newview/llmediactrl.cpp
+++ b/indra/newview/llmediactrl.cpp
@@ -542,9 +542,9 @@ void LLMediaCtrl::navigateToLocalPage( const std::string& subdir, const std::str
 
 	if (! gDirUtilp->fileExists(expanded_filename))
 	{
-		if (language != "en-us")
+		if (language != "en")
 		{
-			expanded_filename = gDirUtilp->findSkinnedFilename("html", "en-us", filename);
+			expanded_filename = gDirUtilp->findSkinnedFilename("html", "en", filename);
 			if (! gDirUtilp->fileExists(expanded_filename))
 			{
 				llwarns << "File " << subdir << delim << filename_in << "not found" << llendl;
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index af9e791223c9e2d3c3d0910131be97aeca0f71f7..df9002facc1437775d23a486ee60902ccc1e882b 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -676,7 +676,7 @@ void LLPanelLogin::refreshLocation( bool force_visible )
 		// Don't show on first run after install
 		// Otherwise ShowStartLocation defaults to true.
 		show_start = gSavedSettings.getBOOL("ShowStartLocation")
-					&& !gSavedSettings.getBOOL("FirstRunThisInstall");
+					&& gSavedSettings.getBOOL("HadFirstSuccessfulLogin");
 	}
 
 	sInstance->childSetVisible("start_location_combo", show_start);
@@ -847,7 +847,7 @@ void LLPanelLogin::loadLoginPage()
 		oStr << "&auto_login=TRUE";
 	}
 	if (gSavedSettings.getBOOL("ShowStartLocation")
-		&& !gSavedSettings.getBOOL("FirstRunThisInstall"))
+		&& gSavedSettings.getBOOL("HadFirstSuccessfulLogin"))
 	{
 		oStr << "&show_start_location=TRUE";
 	}	
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index b5cd5b73ce42f8df5a31c7c427485463bbbeea28..9fda77fe74c2614f91b72081c16941d6e9eb86d3 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -773,8 +773,6 @@ bool idle_startup()
 
 			LLPanelLogin::giveFocus();
 
-			gSavedSettings.setBOOL("FirstRunThisInstall", FALSE);
-
 			LLStartUp::setStartupState( STATE_LOGIN_WAIT );		// Wait for user input
 		}
 		else
@@ -1997,6 +1995,9 @@ bool idle_startup()
 
 		LLStartUp::setStartupState( STATE_STARTED );
 
+		// Mark that we have successfully logged in at least once
+		gSavedSettings.setBOOL("HadFirstSuccessfulLogin", TRUE);
+
 		// Unmute audio if desired and setup volumes.
 		// Unmute audio if desired and setup volumes.
 		// This is a not-uncommon crash site, so surround it with
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 0d6e490faa54b26f0e3b9b09e0d4ec365f8e57dc..a83baf7f9a5ff764ad83547bf540f81841593257 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -7187,25 +7187,7 @@ void handle_buy_currency_test(void*)
 	LLStringUtil::format_map_t replace;
 	replace["[AGENT_ID]"] = gAgent.getID().asString();
 	replace["[SESSION_ID]"] = gAgent.getSecureSessionID().asString();
-
-	// *TODO: Replace with call to LLUI::getLanguage() after windows-setup
-	// branch merges in. JC
-	std::string language = "en";
-	language = gSavedSettings.getString("Language");
-	if (language.empty() || language == "default")
-	{
-		language = gSavedSettings.getString("InstallLanguage");
-	}
-	if (language.empty() || language == "default")
-	{
-		language = gSavedSettings.getString("SystemLanguage");
-	}
-	if (language.empty() || language == "default")
-	{
-		language = "en";
-	}
-
-	replace["[LANGUAGE]"] = language;
+	replace["[LANGUAGE]"] = LLUI::getLanguage();
 	LLStringUtil::format(url, replace);
 
 	llinfos << "buy currency url " << url << llendl;