diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 7d1c31f69701182bb8f518b8c310b557ce667f3a..764637e7b70021ff29199e313abf774d7ca08d3c 100644
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -2076,7 +2076,7 @@ bool LLVivoxVoiceClient::waitForChannel()
             {
                 recordingAndPlaybackMode();
             }
-            else if (checkParcelChanged() || (!mAreaVoiceDisabled && mNextAudioSession == nullptr))
+            else if ((checkParcelChanged() || mNextAudioSession == nullptr) && !mAreaVoiceDisabled)
             {
                 // the parcel is changed, or we have no pending audio sessions,
                 // so try to request the parcel voice info
@@ -2087,8 +2087,6 @@ bool LLVivoxVoiceClient::waitForChannel()
             {
                 LL_INFOS("Voice") << "Session requesting reprovision and login." << LL_ENDL;
                 requestRelog();
-				state = VOICE_CHANNEL_STATE_RELOG;
-				break;
             }
             else if (mNextAudioSession)
             {
@@ -2097,7 +2095,6 @@ bool LLVivoxVoiceClient::waitForChannel()
                 if (!runSession(joinSession)) //suspends
                 {
                     LL_DEBUGS("Voice") << "runSession returned false; leaving inner loop" << LL_ENDL;
-                    return false;
                 }
                 else
                 {