diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRtcCallManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRtcCallManager.as
index 81a58b8d3cf475e5d793e85447470a00af57c918..7b6e64318c9b4bc2673ef10b6352122b584d39e1 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRtcCallManager.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRtcCallManager.as
@@ -18,6 +18,7 @@ package org.bigbluebutton.modules.phone.managers
   {
     private var browserType:String = "unknown";
     private var dispatcher:Dispatcher = new Dispatcher();
+    private var echoTestDone:Boolean = false;
     
     public function WebRtcCallManager() {
       browserType = JSAPI.getInstance().getBrowserType();
@@ -62,8 +63,8 @@ package org.bigbluebutton.modules.phone.managers
     
     public function handleWebRtcEchoTestHasAudioEvent():void {
       endEchoTest();
-      ExternalInterface.call("joinWebRtcVoiceConference");
-      dispatcher.dispatchEvent(new WebRtcAskMicPermissionToJoinConferenceEvent(browserType));
+      echoTestDone = true;
+      joinVoiceConference();
     }
     
     public function handleWebRtcConfCallStartedEvent():void {
@@ -76,8 +77,17 @@ package org.bigbluebutton.modules.phone.managers
       dispatcher.dispatchEvent(new CallDisconnectedEvent());
     }
     
+    private function joinVoiceConference():void {
+      ExternalInterface.call("joinWebRtcVoiceConference");
+      dispatcher.dispatchEvent(new WebRtcAskMicPermissionToJoinConferenceEvent(browserType));        
+    }
+    
     public function handleJoinVoiceConferenceCommand():void {
-      startWebRtcEchoTest();
+      if (echoTestDone) {
+        joinVoiceConference();
+      } else {
+        startWebRtcEchoTest();
+      }     
     }
     
     public function handleLeaveVoiceConferenceCommand():void {