diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index 2cc5ea72d6e81a78a28238ca2a1e5567deb37a4a..4edcf4a47d7a8d8c99ddd666406c593d1ec2e3d9 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -763,7 +763,7 @@ BOOL LLPanelLogin::areCredentialFieldsDirty()
 	else
 	{
 		LLComboBox* combo = sInstance->getChild<LLComboBox>("username_combo");
-		if (combo && combo->getCurrentIndex() == -1 && combo->isDirty())
+		if (combo && combo->getCurrentIndex() == -1 && !combo->getValue().asString().empty())
 		{
 			return true;
 		}
@@ -1249,6 +1249,7 @@ void LLPanelLogin::populateUserList(LLPointer<LLCredential> credential)
         {
             // selection failed, just deselect whatever might be selected
             user_combo->setValue(std::string());
+            getChild<LLUICtrl>("password_edit")->setValue(std::string());
         }
         else
         {