diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 3b9b3a51d5823eec6e28f8e115d4e5e3a0e3d4a2..62197406b65daa46fccbdf9bdc666bd122cb3fad 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>HadFirstSuccessfulLogin</key>
+    <key>FirstRunThisInstall</key>
     <map>
       <key>Comment</key>
-      <string>Specifies whether you have successfully logged in at least once before</string>
+      <string>Specifies that you have not run the viewer since you installed the latest update</string>
       <key>Persist</key>
       <integer>1</integer>
       <key>Type</key>
       <string>Boolean</string>
       <key>Value</key>
-      <integer>0</integer>
+      <integer>1</integer>
     </map>
     <key>FirstSelectedDisabledPopups</key>
     <map>
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 2f90885df3a6907c8e56a323347f5866f7105bf5..2d694eefd350a8ab2e71f114463c4700b0c00cc5 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["HadFirstSuccessfulLogin"] = gSavedSettings.getBOOL("HadFirstSuccessfulLogin");
+	gDebugInfo["FirstRunThisInstall"] = gSavedSettings.getBOOL("FirstRunThisInstall");
 
 	if(gLogoutInProgress)
 	{
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index df9002facc1437775d23a486ee60902ccc1e882b..af9e791223c9e2d3c3d0910131be97aeca0f71f7 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("HadFirstSuccessfulLogin");
+					&& !gSavedSettings.getBOOL("FirstRunThisInstall");
 	}
 
 	sInstance->childSetVisible("start_location_combo", show_start);
@@ -847,7 +847,7 @@ void LLPanelLogin::loadLoginPage()
 		oStr << "&auto_login=TRUE";
 	}
 	if (gSavedSettings.getBOOL("ShowStartLocation")
-		&& gSavedSettings.getBOOL("HadFirstSuccessfulLogin"))
+		&& !gSavedSettings.getBOOL("FirstRunThisInstall"))
 	{
 		oStr << "&show_start_location=TRUE";
 	}	
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 5cca87bd712840c9cf086d534866c8d2126bf765..522adc05ced2b34596aa580571b6c58b8da80a2a 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -773,6 +773,8 @@ bool idle_startup()
 
 			LLPanelLogin::giveFocus();
 
+			gSavedSettings.setBOOL("FirstRunThisInstall", FALSE);
+
 			LLStartUp::setStartupState( STATE_LOGIN_WAIT );		// Wait for user input
 		}
 		else
@@ -2010,9 +2012,6 @@ 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