diff --git a/bigbluebutton-html5/imports/api/voice-users/server/methods/muteToggle.js b/bigbluebutton-html5/imports/api/voice-users/server/methods/muteToggle.js
index fdc3c23f4d4a6df62b6e16e7ce6327bf3a23ddba..b28ee5935f15cb866c3223648937e3f4d93869af 100644
--- a/bigbluebutton-html5/imports/api/voice-users/server/methods/muteToggle.js
+++ b/bigbluebutton-html5/imports/api/voice-users/server/methods/muteToggle.js
@@ -3,8 +3,9 @@ import { extractCredentials } from '/imports/api/common/server/helpers';
 import RedisPubSub from '/imports/startup/server/redis';
 import Users from '/imports/api/users';
 import VoiceUsers from '/imports/api/voice-users';
+import _ from 'lodash';
 
-export default function muteToggle(uId) {
+export default function muteToggle(uId, implicitToggle) {
   const REDIS_CONFIG = Meteor.settings.private.redis;
   const CHANNEL = REDIS_CONFIG.channels.toAkkaApps;
   const EVENT_NAME = 'MuteUserCmdMsg';
@@ -30,7 +31,7 @@ export default function muteToggle(uId) {
   const payload = {
     userId: userToMute,
     mutedBy: requesterUserId,
-    mute: !muted,
+    mute: _.isNil(implicitToggle)? !muted : implicitToggle,
   };
 
   RedisPubSub.publishUserMessage(CHANNEL, EVENT_NAME, meetingId, requesterUserId, payload);
diff --git a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js
index 4146c25cc94c561c6d1469850c6ffb4cf5cd5417..f9aab8a276e0b4f58b4fb2f2a8cfe279e66b28bd 100755
--- a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js
+++ b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js
@@ -284,7 +284,7 @@ class AudioManager {
     this.isConnected = true;
 
     if (this.wasMuted) {
-      makeCall('toggleVoice');
+      makeCall('toggleVoice', true);
       this.wasMuted = false;
     }
     // listen to the VoiceUsers changes and update the flag
@@ -293,7 +293,7 @@ class AudioManager {
       this.muteHandle = query.observeChanges({
         changed: (id, fields) => {
           if (fields.muted !== undefined && fields.muted !== this.isMuted) {
-            this.isMuted = fields.muted;
+            this.isMuted = true;
             const muteState = this.isMuted ? 'selfMuted' : 'selfUnmuted';
             window.parent.postMessage({ response: muteState }, '*');
           }