diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp
index f19569d4292c16db3f6cf4f2b98e3c9ce0a1f4f7..902510c29498fb8c31a1ba9237c2f76214513ccb 100644
--- a/indra/newview/lllogininstance.cpp
+++ b/indra/newview/lllogininstance.cpp
@@ -524,6 +524,8 @@ bool LLLoginInstance::handleTOSResponse(bool accepted, const std::string& key)
 
 bool LLLoginInstance::handleMFAResponse(const std::string& token, const std::string& key)
 {
+    LLEventPumps::instance().obtain(MFA_REPLY_PUMP).stopListening(MFA_LISTENER_NAME);
+
     if(!token.empty())
     {
         LL_INFOS("LLLogin") << "LLLoginInstance::handleMFAResponse: token submitted" << LL_ENDL;
@@ -539,7 +541,6 @@ bool LLLoginInstance::handleMFAResponse(const std::string& token, const std::str
         attemptComplete();
     }
 
-    LLEventPumps::instance().obtain(MFA_REPLY_PUMP).stopListening(MFA_LISTENER_NAME);
     return true;
 }
 
diff --git a/indra/newview/skins/default/xui/en/floater_mfa.xml b/indra/newview/skins/default/xui/en/floater_mfa.xml
index 361641d313d725231a6e9c109d631a7d8df4d02d..7fd31cd9e2930e9658d9245ee889e6830120e2f2 100644
--- a/indra/newview/skins/default/xui/en/floater_mfa.xml
+++ b/indra/newview/skins/default/xui/en/floater_mfa.xml
@@ -22,12 +22,10 @@
         token prompt
     </text>
     <line_editor
-     allow_text_entry="true"
      follows="left|top|right"
      height="19"
      layout="topleft"
      bottom_delta="40"
-     max_chars="16"
      name="token_edit"
      width="100" />
     <button