diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala
index a48d42117715bca8cd1952c84bf5b4cb6df39d07..554f5c37a215a99cb8225b62efbb046a6e791915 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala
@@ -126,8 +126,8 @@ class MeetingActor(
   var state = new MeetingState2x(inactivityTracker, expiryTracker)
 
   /*******************************************************************/
-  object FakeTestData extends FakeTestData
-  FakeTestData.createFakeUsers(liveMeeting)
+  //object FakeTestData extends FakeTestData
+  //FakeTestData.createFakeUsers(liveMeeting)
   /*******************************************************************/
 
   def receive = {
diff --git a/bigbluebutton-client/.actionScriptProperties b/bigbluebutton-client/.actionScriptProperties
index 06a78d9f4aa04a1da79ae79bc5b858ed7ec2f0cf..3c9a41142ac32c96d1e458ebdc9b4b60d65cabbe 100755
--- a/bigbluebutton-client/.actionScriptProperties
+++ b/bigbluebutton-client/.actionScriptProperties
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<actionScriptProperties analytics="false" mainApplicationPath="BigBlueButton.mxml" projectUUID="d0ee1158-6eb2-478c-9e78-b5aa55d7b59c" version="11">
+<actionScriptProperties analytics="false" mainApplicationPath="BigBlueButton.mxml" projectUUID="36eb58ba-e647-4fa5-b3c9-6b5c5395c811" version="11">
   <compiler additionalCompilerArguments="-locale en_US" autoRSLOrdering="true" copyDependentFiles="true" fteInMXComponents="false" generateAccessible="true" htmlExpressInstall="true" htmlGenerate="true" htmlHistoryManagement="true" htmlPlayerVersionCheck="true" includeNetmonSwc="false" outputFolderPath="bin-debug" removeUnusedRSL="true" sourceFolderPath="src" strict="true" targetPlayerVersion="0.0.0" useApolloConfig="false" useDebugRSLSwfs="true" useFlashSDK="false" verifyDigests="true" warn="true">
     <compilerSourcePath/>
     <libraryPath defaultLinkType="0">
diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/GuestWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/GuestWindow.mxml
index d70fa50c12a515885e079f87b4a97f21151ca654..c2500aec3de807f6acecf37967ed66fe9591a723 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/main/views/GuestWindow.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/GuestWindow.mxml
@@ -1,146 +1,146 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  BigBlueButton open source conferencing system - http://www.bigbluebutton.org
+BigBlueButton open source conferencing system - http://www.bigbluebutton.org
 
-  Copyright (c) 2010 BigBlueButton Inc. and by respective authors (see below).
+Copyright (c) 2010 BigBlueButton Inc. and by respective authors (see below).
 
-  BigBlueButton is free software; you can redistribute it and/or modify it under the
-  terms of the GNU Lesser General Public License as published by the Free Software
-  Foundation; either version 2.1 of the License, or (at your option) any later
-  version.
+BigBlueButton is free software; you can redistribute it and/or modify it under the
+terms of the GNU Lesser General Public License as published by the Free Software
+Foundation; either version 2.1 of the License, or (at your option) any later
+version.
 
-  BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-  PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
 
-  You should have received a copy of the GNU Lesser General Public License along
-  with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
+You should have received a copy of the GNU Lesser General Public License along
+with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 
-  $Id: $
+$Id: $
 -->
 
 <mx:TitleWindow xmlns:mx="library://ns.adobe.com/flex/mx"
-				xmlns:fx="http://ns.adobe.com/mxml/2009"
-	title="{ResourceUtil.getInstance().getString('bbb.guests.title')}" showCloseButton="false" creationComplete="init()"
-	x="0" y="0" layout="vertical" width="320" horizontalAlign="center"
-	xmlns:mate="http://mate.asfusion.com/" >
-
-	<fx:Declarations>
-		<mate:Listener type="{BBBEvent.ACCEPT_ALL_WAITING_GUESTS}" method="acceptAllWaitingGuests" />
-		<mate:Listener type="{BBBEvent.DENY_ALL_WAITING_GUESTS}" method="denyAllWaitingGuests" />
-		<mate:Listener type="{RemoveGuestFromViewEvent.REMOVE_GUEST}" receive="{remove(event.userid)}" />
-	</fx:Declarations>
-
-	<fx:Script>
-		<![CDATA[
-      import com.asfusion.mate.events.Dispatcher;
-      
-      import mx.controls.Button;
-      import mx.events.CloseEvent;
-      import mx.managers.PopUpManager;
-      
-      import org.bigbluebutton.core.model.LiveMeeting;
-      import org.bigbluebutton.core.model.users.GuestWaiting;
-      import org.bigbluebutton.main.events.BBBEvent;
-      import org.bigbluebutton.main.events.RemoveGuestEvent;
-      import org.bigbluebutton.main.events.RemoveGuestFromViewEvent;
-      import org.bigbluebutton.main.events.ResponseModeratorEvent;
-      import org.bigbluebutton.util.i18n.ResourceUtil;
-
-			private var guestButtons:Object = new Object();
-			[Bindable] private var numberOfGuests:Number = 0;
-			private var dispatcher:Dispatcher = new Dispatcher();
-
-			public function init():void {
-				//Uncomment this line to make titlewindow undraggable
-				//this.isPopUp = false;
-			}
-
-			public function refreshGuestView():void {
-        var _guests: Array = LiveMeeting.inst().guestsWaiting.getGuests();
-        for (var i:int = 0; i < _guests.length; i++) {
-          var _guest: GuestWaiting = _guests[i] as GuestWaiting;
-					if(guestButtons[_guest.intId] == null) {
-						var guestItem:GuestItem = new GuestItem();
-						guestItem.setUser(_guest.name, _guest.intId);
-						guestListBox.addChild(guestItem);
-						guestButtons[_guest.intId] = guestItem;
-						numberOfGuests++;
-					}
-				}
-				this.visible = true;
-			}
-
-			public function sendResponseToAllGuests(resp:Boolean):void {
-				removeAllGuests();
-				var respCommand:ResponseModeratorEvent = new ResponseModeratorEvent(ResponseModeratorEvent.RESPONSE_ALL);
-				respCommand.resp = resp;
-				dispatcher.dispatchEvent(respCommand);
-			}
-
-			public function sendResponseToAllGuestsCheckBox(resp:Boolean):void {
-				if(rememberCheckBox.selected) {
-					var event:BBBEvent = new BBBEvent(BBBEvent.BROADCAST_GUEST_POLICY);
-					if (resp) {
-						event.payload['guestPolicy'] = "ALWAYS_ACCEPT";
-					} else {
-						event.payload['guestPolicy'] = "ALWAYS_DENY";
-					}
-					dispatcher.dispatchEvent(event);
-				}
-				sendResponseToAllGuests(resp);
-			}
-
-			public function acceptAllWaitingGuests(event:BBBEvent):void {
-				sendResponseToAllGuests(true);
-			}
-
-			public function denyAllWaitingGuests(event:BBBEvent):void {
-				sendResponseToAllGuests(false);
-			}
-
-			public function removeAllGuests():void {
-				var removeGuestEvent:RemoveGuestEvent = new RemoveGuestEvent(RemoveGuestEvent.REMOVE_ALL);
-				dispatcher.dispatchEvent(removeGuestEvent);
-
-				closeWindow();
-			}
-
-			public function remove(userid:String):void {
-				if (guestButtons[userid] != null) {
-					numberOfGuests = numberOfGuests  - 1;
-					guestListBox.removeChild(guestButtons[userid]);
-					delete guestButtons[userid];
-
-					var removeGuestEvent:RemoveGuestEvent = new RemoveGuestEvent();
-					removeGuestEvent.userid = userid;
-					dispatcher.dispatchEvent(removeGuestEvent);
-
-					if (!hasGuest()) {
-						closeWindow();
-					}
-				}
-			}
-
-			public function hasGuest():Boolean {
-				return numberOfGuests > 0;
-			}
-
-			public function closeWindow():void {
-				this.visible = false;
-				PopUpManager.removePopUp(this);
-				dispatchEvent(new CloseEvent(CloseEvent.CLOSE));
-			}
-
-		]]>
-	</fx:Script>
-	<mx:Label text="{numberOfGuests > 1? ResourceUtil.getInstance().getString('bbb.guests.message.plural', [String(numberOfGuests)]): ResourceUtil.getInstance().getString('bbb.guests.message.singular', [String(numberOfGuests)])}"/>
-	<mx:HRule width="100%"/>
-	<mx:Button id="allowEveryoneBtn" label="{ResourceUtil.getInstance().getString('bbb.guests.allowEveryoneBtn.text')}" width="70%" click="sendResponseToAllGuestsCheckBox(true)" toolTip="{allowEveryoneBtn.label}"/>
-	<mx:Button id="denyEveryoneBtn" label="{ResourceUtil.getInstance().getString('bbb.guests.denyEveryoneBtn.text')}" width="70%" click="sendResponseToAllGuestsCheckBox(false)" toolTip="{denyEveryoneBtn.label}"/>
-	<mx:CheckBox id="rememberCheckBox" label="{ResourceUtil.getInstance().getString('bbb.guests.rememberAction.text')}"/>
-	<mx:HRule width="100%"/>
-	<mx:VBox id="guestListBox" width="100%" height="100%" maxHeight="200" paddingLeft="10" paddingRight="10" paddingBottom="2" />
-
+                xmlns:fx="http://ns.adobe.com/mxml/2009"
+                title="{ResourceUtil.getInstance().getString('bbb.guests.title')}" showCloseButton="false" creationComplete="init()"
+                x="0" y="0" layout="vertical" width="320" horizontalAlign="center"
+                xmlns:mate="http://mate.asfusion.com/" >
+    
+    <fx:Declarations>
+        <mate:Listener type="{BBBEvent.ACCEPT_ALL_WAITING_GUESTS}" method="acceptAllWaitingGuests" />
+        <mate:Listener type="{BBBEvent.DENY_ALL_WAITING_GUESTS}" method="denyAllWaitingGuests" />
+        <mate:Listener type="{RemoveGuestFromViewEvent.REMOVE_GUEST}" receive="{remove(event.userid)}" />
+    </fx:Declarations>
+    
+    <fx:Script>
+        <![CDATA[
+            import com.asfusion.mate.events.Dispatcher;
+            
+            import mx.controls.Button;
+            import mx.events.CloseEvent;
+            import mx.managers.PopUpManager;
+            
+            import org.bigbluebutton.core.model.LiveMeeting;
+            import org.bigbluebutton.core.model.users.GuestWaiting;
+            import org.bigbluebutton.main.events.BBBEvent;
+            import org.bigbluebutton.main.events.RemoveGuestEvent;
+            import org.bigbluebutton.main.events.RemoveGuestFromViewEvent;
+            import org.bigbluebutton.main.events.ResponseModeratorEvent;
+            import org.bigbluebutton.util.i18n.ResourceUtil;
+            
+            private var guestButtons:Object = new Object();
+            [Bindable] private var numberOfGuests:Number = 0;
+            private var dispatcher:Dispatcher = new Dispatcher();
+            
+            public function init():void {
+                //Uncomment this line to make titlewindow undraggable
+                //this.isPopUp = false;
+            }
+            
+            public function refreshGuestView():void {
+                var _guests: Array = LiveMeeting.inst().guestsWaiting.getGuests();
+                for (var i:int = 0; i < _guests.length; i++) {
+                    var _guest: GuestWaiting = _guests[i] as GuestWaiting;
+                    if(guestButtons[_guest.intId] == null) {
+                        var guestItem:GuestItem = new GuestItem();
+                        guestItem.setUser(_guest.name, _guest.intId);
+                        guestListBox.addChild(guestItem);
+                        guestButtons[_guest.intId] = guestItem;
+                        numberOfGuests++;
+                    }
+                }
+                this.visible = true;
+            }
+            
+            public function sendResponseToAllGuests(resp:Boolean):void {
+                removeAllGuests();
+                var respCommand:ResponseModeratorEvent = new ResponseModeratorEvent(ResponseModeratorEvent.RESPONSE_ALL);
+                respCommand.resp = resp;
+                dispatcher.dispatchEvent(respCommand);
+            }
+            
+            public function sendResponseToAllGuestsCheckBox(resp:Boolean):void {
+                if(rememberCheckBox.selected) {
+                    var event:BBBEvent = new BBBEvent(BBBEvent.BROADCAST_GUEST_POLICY);
+                    if (resp) {
+                        event.payload['guestPolicy'] = "ALWAYS_ACCEPT";
+                    } else {
+                        event.payload['guestPolicy'] = "ALWAYS_DENY";
+                    }
+                    dispatcher.dispatchEvent(event);
+                }
+                sendResponseToAllGuests(resp);
+            }
+            
+            public function acceptAllWaitingGuests(event:BBBEvent):void {
+                sendResponseToAllGuests(true);
+            }
+            
+            public function denyAllWaitingGuests(event:BBBEvent):void {
+                sendResponseToAllGuests(false);
+            }
+            
+            public function removeAllGuests():void {
+                var removeGuestEvent:RemoveGuestEvent = new RemoveGuestEvent(RemoveGuestEvent.REMOVE_ALL);
+                dispatcher.dispatchEvent(removeGuestEvent);
+                
+                closeWindow();
+            }
+            
+            public function remove(userid:String):void {
+                if (guestButtons[userid] != null) {
+                    numberOfGuests = numberOfGuests  - 1;
+                    guestListBox.removeChild(guestButtons[userid]);
+                    delete guestButtons[userid];
+                    
+                    var removeGuestEvent:RemoveGuestEvent = new RemoveGuestEvent();
+                    removeGuestEvent.userid = userid;
+                    dispatcher.dispatchEvent(removeGuestEvent);
+                    
+                    if (!hasGuest()) {
+                        closeWindow();
+                    }
+                }
+            }
+            
+            public function hasGuest():Boolean {
+                return numberOfGuests > 0;
+            }
+            
+            public function closeWindow():void {
+                this.visible = false;
+                PopUpManager.removePopUp(this);
+                //dispatchEvent(new CloseEvent(CloseEvent.CLOSE));
+            }
+            
+        ]]>
+    </fx:Script>
+    <mx:Label text="{numberOfGuests > 1? ResourceUtil.getInstance().getString('bbb.guests.message.plural', [String(numberOfGuests)]): ResourceUtil.getInstance().getString('bbb.guests.message.singular', [String(numberOfGuests)])}"/>
+    <mx:HRule width="100%"/>
+    <mx:Button id="allowEveryoneBtn" label="{ResourceUtil.getInstance().getString('bbb.guests.allowEveryoneBtn.text')}" width="70%" click="sendResponseToAllGuestsCheckBox(true)" toolTip="{allowEveryoneBtn.label}"/>
+    <mx:Button id="denyEveryoneBtn" label="{ResourceUtil.getInstance().getString('bbb.guests.denyEveryoneBtn.text')}" width="70%" click="sendResponseToAllGuestsCheckBox(false)" toolTip="{denyEveryoneBtn.label}"/>
+    <mx:CheckBox id="rememberCheckBox" label="{ResourceUtil.getInstance().getString('bbb.guests.rememberAction.text')}"/>
+    <mx:HRule width="100%"/>
+    <mx:VBox id="guestListBox" width="100%" height="100%" maxHeight="200" paddingLeft="10" paddingRight="10" paddingBottom="2" />
+    
 </mx:TitleWindow>
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/users/maps/UsersMainEventMap.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/users/maps/UsersMainEventMap.mxml
index 0a3882a8e6951b30bb7a6b0ae2782c9b287462c9..2a67382431576c3e78d11a26678054975b9037b5 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/users/maps/UsersMainEventMap.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/users/maps/UsersMainEventMap.mxml
@@ -194,7 +194,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 	  </EventHandlers>
 	
 	  <EventHandlers type="{ResponseModeratorEvent.RESPONSE_ALL}" >
-	    <MethodInvoker generator="{UserService}" method="responseToGuest" arguments="{event}" />
+	    <MethodInvoker generator="{UserService}" method="responseToAllGuest" arguments="{event}" />
 	  </EventHandlers>
 	
 	  <EventHandlers type="{BBBEvent.BROADCAST_GUEST_POLICY}" >
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageSender.as b/bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageSender.as
index 16ca44e43071663ad47d24befd8b19b30ffde9a8..c738e59f43fa47a6d3cd68b5219c3fc3be54c161 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageSender.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageSender.as
@@ -37,6 +37,8 @@ package org.bigbluebutton.modules.users.services
   import org.bigbluebutton.core.connection.messages.breakoutrooms.RequestBreakoutJoinURLMsg;
   import org.bigbluebutton.core.connection.messages.breakoutrooms.RequestBreakoutJoinURLMsgBody;
   import org.bigbluebutton.core.managers.ConnectionManager;
+  import org.bigbluebutton.core.model.LiveMeeting;
+  import org.bigbluebutton.core.model.users.GuestWaiting;
 
   public class MessageSender {
 	private static const LOGGER:ILogger = getClassLogger(MessageSender);
@@ -625,12 +627,17 @@ package org.bigbluebutton.modules.users.services
     public function responseToGuest(userId:String, response:Boolean):void {
       LOGGER.debug("responseToGuest - userId:[" + userId + "] response:[" + response + "]");
 
-      var message:Object = new Object();
-      message["userId"] = userId;
-      message["response"] = response;
+	  var _guests: Array = new Array();
+	  _guests.push({guest: userId, approved: response});
+	  
+	  var message:Object = {
+		  header: {name: "GuestsWaitingApprovedMsg", meetingId: UsersUtil.getInternalMeetingID(), 
+			  userId: UsersUtil.getMyUserID()},
+		  body: {guests: _guests, approvedBy: UsersUtil.getMyUserID()}
+	  };
 
       var _nc:ConnectionManager = BBB.initConnectionManager();
-      _nc.sendMessage("participants.responseToGuest",
+      _nc.sendMessage2x(
          function(result:String):void { // On successful result
            LOGGER.debug(result);
          },
@@ -640,12 +647,38 @@ package org.bigbluebutton.modules.users.services
                 logData.message = "Error occured response guest.";
                 LOGGER.info(JSON.stringify(logData));
          },
-         message
+		 JSON.stringify(message)
        );
     }
 
     public function responseToAllGuests(response:Boolean):void {
-      responseToGuest(null, response);
+		var _guestsWaiting: Array = LiveMeeting.inst().guestsWaiting.getGuests();
+		var _guests: Array = new Array();
+		
+		for (var i:int = 0; i < _guests.length; i++) {
+			var _guest: GuestWaiting = _guestsWaiting[i] as GuestWaiting;
+			_guests.push({guest: _guest.intId, approved: response});
+		}
+		
+		var message:Object = {
+			header: {name: "GuestsWaitingApprovedMsg", meetingId: UsersUtil.getInternalMeetingID(), 
+				userId: UsersUtil.getMyUserID()},
+			body: {guests: _guests, approvedBy: UsersUtil.getMyUserID()}
+		};
+		
+		var _nc:ConnectionManager = BBB.initConnectionManager();
+		_nc.sendMessage2x(
+			function(result:String):void { // On successful result
+				LOGGER.debug(result);
+			},
+			function(status:String):void { // status - On error occurred
+				var logData:Object = UsersUtil.initLogData();
+				logData.tags = ["apps"];
+				logData.message = "Error occured response guest.";
+				LOGGER.info(JSON.stringify(logData));
+			},
+			JSON.stringify(message)
+		);
     }
   }
 }
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindowEventHandler.as b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindowEventHandler.as
index 48bbcf076d1c07f224dd8f576144ebbe9b4211cf..2b758c46e280f40618cc276ec1d3c2d5ae450fdf 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindowEventHandler.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindowEventHandler.as
@@ -86,15 +86,10 @@ package org.bigbluebutton.modules.users.views
       users.refresh();
     }
     
-    private function getWebcamStreamsForUser(userId: String): String {
+    private function getWebcamStreamsForUser(userId: String): Array {
       var streamIds: Array = LiveMeeting.inst().webcams.getStreamIdsForUser(userId);
-      var streams:String = "";
-      for each(var stream:String in streamIds) {
-        streams = streams + stream + "|";
-      }
-      //Remove last |
-      streams = streams.slice(0, streams.length-1);
-      return streams;
+
+      return streamIds;
     }
     
     private function addUser(users: ArrayCollection, user: User2x):void {
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/model/BBBUser2x.as b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/model/BBBUser2x.as
index d3de4cd74327a90fe4e405f6632b02163114d1ce..a6884a534f36f121961cbfc1a5e38c2ea26ec3bc 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/model/BBBUser2x.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/model/BBBUser2x.as
@@ -48,7 +48,7 @@ package org.bigbluebutton.modules.users.views.model
     
     [Bindable]
     public function get hasStream():Boolean {
-      return streamNames.length > 0;
+      return _streamNames.length > 0;
     }
     public function set hasStream(s:Boolean):void {
       throw new Error("hasStream cannot be set. It is derived directly from streamName");
@@ -83,15 +83,15 @@ package org.bigbluebutton.modules.users.views.model
       return _viewingStream.some(function(item:*, index:int, array:Array):Boolean { return item == streamName; });
     }
     public function isViewingAllStreams():Boolean {
-      return _viewingStream.length == streamNames.length;
+      return _viewingStream.length == _streamNames.length;
     }
     
-    [Bindable] public var streamNames:Array = new Array();
+    private var _streamNames:Array = new Array();
     
     [Bindable]
-    public function get streamName():String {
+    public function get streams():Array {
       var streams:String = "";
-      for each(var stream:String in streamNames) {
+      for each(var stream:String in _streamNames) {
         streams = streams + stream + "|";
       }
       //Remove last |
@@ -100,14 +100,17 @@ package org.bigbluebutton.modules.users.views.model
     }
     
     private function hasThisStream(streamName:String):Boolean {
-      return streamNames.some(function(item:*, index:int, array:Array):Boolean { return item == streamName; });
+        for each(var streamId:String in _streamNames) {
+            if (streamId == streamName) return true;
+        }
+      return false; 
     }
     
-    public function set streamName(streamNames:String):void {
-      if(streamNames) {
-        var streamNamesList:Array = streamNames.split("|");
-        for each(var streamName:String in streamNamesList) {
-          sharedWebcam(streamName);
+    public function set streams(streamIds:Array):void {
+      if (streamIds != null) {
+          _streamNames = streamIds;
+        for each(var streamId:String in _streamNames) {
+          sharedWebcam(streamId);
         }
       }
     }