diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index e320886ad2a311c17c97c7c33b6b3bec61eb6a81..54a837d17dffca6e0e159d7a5deabf4ef1673656 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -577,10 +577,23 @@ bool LLParticipantList::LLParticipantListMenu::enableContextMenuItem(const LLSD&
 	{
 		return mUUIDs.front() != gAgentID;
 	}
-	else if (item == "can_allow_text_chat" || "can_moderate_voice" == item)
+	else if (item == "can_allow_text_chat")
 	{
 		return isGroupModerator();
 	}
+	else if ("can_moderate_voice" == item)
+	{
+		if (isGroupModerator())
+		{
+			LLPointer<LLSpeaker> speakerp = mParent.mSpeakerMgr->findSpeaker(mUUIDs.front());
+			if (speakerp.notNull())
+			{
+				// not in voice participants can not be moderated
+				return speakerp->mStatus != LLSpeaker::STATUS_TEXT_ONLY;
+			}
+		}
+		return false;
+	}
 	else if (item == std::string("can_add"))
 	{
 		// We can add friends if: