diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index 0e7634f1d22367c50f20edc393d6acfad0b8aaf5..d7462f50e232d762eefff1426e3a38b211bc0c46 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -254,7 +254,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
 	LLLineEditor* password_edit(getChild<LLLineEditor>("password_edit"));
 	password_edit->setKeystrokeCallback(onPassKey, this);
 	// STEAM-14: When user presses Enter with this field in focus, initiate login
-	password_edit->setCommitCallback(boost::bind(&LLPanelLogin::onClickConnect, this));
+	password_edit->setCommitCallback(boost::bind(&LLPanelLogin::onClickConnect, false));
 
 	// change z sort of clickable text to be behind buttons
 	sendChildToBack(getChildView("forgot_password_text"));
@@ -265,7 +265,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
     {
         LLComboBox* favorites_combo = getChild<LLComboBox>("start_location_combo");
         updateLocationSelectorsVisibility(); // separate so that it can be called from preferences
-        favorites_combo->setReturnCallback(boost::bind(&LLPanelLogin::onClickConnect, this));
+        favorites_combo->setReturnCallback(boost::bind(&LLPanelLogin::onClickConnect, false));
         favorites_combo->setFocusLostCallback(boost::bind(&LLPanelLogin::onLocationSLURL, this));
 
         LLComboBox* server_choice_combo = getChild<LLComboBox>("server_combo");
@@ -997,12 +997,15 @@ void LLPanelLogin::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent ev
 // Protected methods
 //---------------------------------------------------------------------------
 // static
-void LLPanelLogin::onClickConnect(void *)
+void LLPanelLogin::onClickConnect(bool commit_fields)
 {
 	if (sInstance && sInstance->mCallback)
 	{
-		// JC - Make sure the fields all get committed.
-		sInstance->setFocus(FALSE);
+		if (commit_fields)
+		{
+			// JC - Make sure the fields all get committed.
+			sInstance->setFocus(FALSE);
+		}
 
 		LLComboBox* combo = sInstance->getChild<LLComboBox>("server_combo");
 		LLSD combo_val = combo->getSelectedValue();
@@ -1125,7 +1128,7 @@ void LLPanelLogin::onUserListCommit(void*)
            }
            else
            {
-               onClickConnect(NULL);
+               onClickConnect();
            }
         }
     }
diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h
index c9b8e1b6fcfdc4bc3ac2344f5eb39e0df7fb9198..5871cae059345d3eae462ad729a75b90fd8e1261 100644
--- a/indra/newview/llpanellogin.h
+++ b/indra/newview/llpanellogin.h
@@ -98,7 +98,7 @@ class LLPanelLogin:
 
 	static void setFields(LLPointer<LLCredential> credential);
 
-	static void onClickConnect(void*);
+	static void onClickConnect(bool commit_fields = true);
 	static void onClickNewAccount(void*);
 	static void onClickVersion(void*);
 	static void onClickForgotPassword(void*);