diff --git a/bigbluebutton-client/resources/prod/layout.xml b/bigbluebutton-client/resources/prod/layout.xml
index 34988655639b5dd5b2489d2c661ed5b68b25e436..d2df379eedd6649a3f93955c8c19a55e38965f36 100755
--- a/bigbluebutton-client/resources/prod/layout.xml
+++ b/bigbluebutton-client/resources/prod/layout.xml
@@ -3,8 +3,8 @@
   <layout name="bbb.layout.name.defaultlayout" default="true">
     <window name="UsersWindow" width="0.19" height="0.645714285714286" x="0.0078125" y="0.014285714285714" />
     <window name="VideoDock" width="0.19" height="0.303616071428571" x="0.0078125" y="0.682098214285714" />
-    <window name="PresentationWindow" width="0.5575" height="0.971428571428571" x="0.205625" y="0.014285714285714" />
-    <window name="ChatWindow" width="0.22125" height="0.971428571428571" x="0.7709375" y="0.014285714285714" />
+    <window name="PresentationWindow0" width="0.5575" height="0.971428571428571" x="0.205625" y="0.014285714285714" />
+    <window name="ChatWindow0" width="0.22125" height="0.971428571428571" x="0.7709375" y="0.014285714285714" />
     <window name="SharedNotesWindow" hidden="true" />
     <window name="BroadcastWindow" hidden="true" />
     <window name="CaptionWindow" hidden="true" />
@@ -12,9 +12,9 @@
   <layout name="bbb.layout.name.closedcaption">
     <window name="UsersWindow" width="0.19" height="0.645714285714286" x="0.0078125" y="0.014285714285714" />
     <window name="VideoDock" width="0.19" height="0.303616071428571" x="0.0078125" y="0.682098214285714" />
-    <window name="PresentationWindow" width="0.5575" height="0.539560439560439" x="0.205625" y="0.014285714285714" />
+    <window name="PresentationWindow0" width="0.5575" height="0.539560439560439" x="0.205625" y="0.014285714285714" />
     <window name="CaptionWindow" width="0.5575" height="0.409769917582418" x="0.205625" y="0.575944368131867" />
-    <window name="ChatWindow" width="0.22125" height="0.971428571428571" x="0.7709375" y="0.014285714285714" />
+    <window name="ChatWindow0" width="0.22125" height="0.971428571428571" x="0.7709375" y="0.014285714285714" />
     <window name="SharedNotesWindow" hidden="true" />
     <window name="BroadcastWindow" hidden="true" />
   </layout>
@@ -22,23 +22,23 @@
     <window name="VideoDock" width="1" height="1" x="0" y="0" order="0"/>
     <window name="SharedNotesWindow" hidden="true" />
     <window name="BroadcastWindow" hidden="true" />
-    <window name="ChatWindow" hidden="true"  />
-    <window name="PresentationWindow" hidden="true"  />
+    <window name="ChatWindow0" hidden="true"  />
+    <window name="PresentationWindow0" hidden="true"  />
     <window name="UsersWindow" hidden="true" />
     <window name="CaptionWindow" hidden="true"  />
   </layout>
   <layout name="bbb.layout.name.webcamsfocus">
     <window name="VideoDock" width="0.649206313314037" height="0.971428571428571" x="0.0078125" y="0.014285714285714" />
-    <window name="ChatWindow" width="0.335168686685963" height="0.478571428571429" x="0.664831313314037" y="0.014285714285714" />
-    <window name="PresentationWindow" width="0.335168686685963" height="0.478571428571429" x="0.664831313314037" y="0.507142857142857" />
+    <window name="ChatWindow0" width="0.335168686685963" height="0.478571428571429" x="0.664831313314037" y="0.014285714285714" />
+    <window name="PresentationWindow0" width="0.335168686685963" height="0.478571428571429" x="0.664831313314037" y="0.507142857142857" />
     <window name="CaptionWindow" hidden="true"  />
     <window name="BroadcastWindow" hidden="true" />
     <window name="UsersWindow" hidden="true"  />
     <window name="SharedNotesWindow" hidden="true" />
   </layout>
   <layout name="bbb.layout.name.presentfocus">
-    <window name="PresentationWindow" width="0.649206313314037" height="0.971428571428571" x="0.0078125" y="0.014285714285714" />
-    <window name="ChatWindow" width="0.335168686685963" height="0.478571428571429" x="0.664831313314037" y="0.014285714285714" />
+    <window name="PresentationWindow0" width="0.649206313314037" height="0.971428571428571" x="0.0078125" y="0.014285714285714" />
+    <window name="ChatWindow0" width="0.335168686685963" height="0.478571428571429" x="0.664831313314037" y="0.014285714285714" />
     <window name="VideoDock" width="0.335168686685963" height="0.478571428571429" x="0.664831313314037" y="0.507142857142857" />
     <window name="CaptionWindow" hidden="true" />
     <window name="SharedNotesWindow" hidden="true" />
@@ -46,8 +46,8 @@
     <window name="UsersWindow" hidden="true" />
   </layout>
   <layout name="bbb.layout.name.presentandusers">
-    <window name="PresentationWindow" width="0.649206313314037" height="0.971428571428571" x="0.0078125" y="0.014285714285714" />
-    <window name="ChatWindow" width="0.335168686685963" height="0.478571428571429" x="0.664831313314037" y="0.014285714285714" />
+    <window name="PresentationWindow0" width="0.649206313314037" height="0.971428571428571" x="0.0078125" y="0.014285714285714" />
+    <window name="ChatWindow0" width="0.335168686685963" height="0.478571428571429" x="0.664831313314037" y="0.014285714285714" />
     <window name="UsersWindow" width="0.335168686685963" height="0.478571428571429" x="0.664831313314037" y="0.507142857142857" />
     <window name="CaptionWindow" hidden="true" />
     <window name="SharedNotesWindow" hidden="true" />
@@ -56,8 +56,8 @@
   </layout>
   <layout name="bbb.layout.name.lectureassistant">
     <window name="UsersWindow" width="0.19" height="0.971428571428571" x="0.0078125" y="0.014285714285714" />
-    <window name="ChatWindow" width="0.5575" height="0.971428571428571" x="0.205625" y="0.014285714285714" />
-    <window name="PresentationWindow" width="0.22125" height="0.478571428571429" x="0.7709375" y="0.014285714285714" />
+    <window name="ChatWindow0" width="0.5575" height="0.971428571428571" x="0.205625" y="0.014285714285714" />
+    <window name="PresentationWindow0" width="0.22125" height="0.478571428571429" x="0.7709375" y="0.014285714285714" />
     <window name="VideoDock" width="0.22125" height="0.478571428571429" x="0.7709375" y="0.507142857142857" />
     <window name="SharedNotesWindow" hidden="true" />
     <window name="BroadcastWindow" hidden="true" />
@@ -66,25 +66,25 @@
   <layout name="bbb.layout.name.lecture">
     <window name="UsersWindow" width="0.19" height="0.645714285714286" x="0.0078125" y="0.014285714285714" order="3"/>
     <window name="SharedNotesWindow" width="0.19" height="0.303616071428571" x="0.0078125" y="0.682098214285714" order="4"/>
-    <window name="PresentationWindow" width="0.5575" height="0.971428571428571" x="0.205625" y="0.014285714285714" />
-    <window name="ChatWindow" width="0.22125" height="0.478571428571429" x="0.7709375" y="0.014285714285714" order="2"/>
+    <window name="PresentationWindow0" width="0.5575" height="0.971428571428571" x="0.205625" y="0.014285714285714" />
+    <window name="ChatWindow0" width="0.22125" height="0.478571428571429" x="0.7709375" y="0.014285714285714" order="2"/>
     <window name="VideoDock" width="0.22125" height="0.478571428571429" x="0.7709375" y="0.507142857142857" order="0"/>
     <window name="BroadcastWindow" hidden="true"/>
     <window name="CaptionWindow" hidden="true"/>
   </layout>
   <layout name="bbb.layout.name.lecture" role="presenter">
-    <window name="PresentationWindow" maximized="true" />
+    <window name="PresentationWindow0" maximized="true" />
     <window name="SharedNotesWindow" hidden="true" />
     <window name="BroadcastWindow" hidden="true"/>
-    <window name="ChatWindow" hidden="true" />
+    <window name="ChatWindow0" hidden="true" />
     <window name="UsersWindow" hidden="true" />
     <window name="VideoDock" hidden="true" />
     <window name="CaptionWindow" hidden="true" />
   </layout>
   <layout name="bbb.layout.name.lecture" role="moderator">
     <window name="UsersWindow" width="0.19" height="0.971428571428571" x="0.0078125" y="0.014285714285714" />
-    <window name="ChatWindow" width="0.5575" height="0.971428571428571" x="0.205625" y="0.014285714285714" />
-    <window name="PresentationWindow" width="0.22125" height="0.478571428571429" x="0.7709375" y="0.014285714285714" />
+    <window name="ChatWindow0" width="0.5575" height="0.971428571428571" x="0.205625" y="0.014285714285714" />
+    <window name="PresentationWindow0" width="0.22125" height="0.478571428571429" x="0.7709375" y="0.014285714285714" />
     <window name="VideoDock" width="0.22125" height="0.478571428571429" x="0.7709375" y="0.507142857142857" />
     <window name="SharedNotesWindow" hidden="true" />
     <window name="BroadcastWindow" hidden="true" />
@@ -93,8 +93,8 @@
   <layout name="bbb.layout.name.sharednotes">
     <window name="UsersWindow" width="0.19" height="0.611428571428572" x="0.0078125" y="0.014285714285714" order="3"/>
     <window name="SharedNotesWindow" width="0.19" height="0.337901785714285" x="0.0078125" y="0.647812500000000" order="4"/>
-    <window name="PresentationWindow" width="0.5575" height="0.971428571428571" x="0.205625" y="0.014285714285714" />
-    <window name="ChatWindow" width="0.22125" height="0.611428571428572" x="0.7709375" y="0.014285714285714" order="2"/>
+    <window name="PresentationWindow0" width="0.5575" height="0.971428571428571" x="0.205625" y="0.014285714285714" />
+    <window name="ChatWindow0" width="0.22125" height="0.611428571428572" x="0.7709375" y="0.014285714285714" order="2"/>
     <window name="VideoDock" width="0.22125" height="0.337901785714285" x="0.7709375" y="0.647812500000000" order="0"/>
     <window name="BroadcastWindow" hidden="true"/>
     <window name="CaptionWindow" hidden="true"/>
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/ChatEventMapDelegate.as b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/ChatEventMapDelegate.as
index 156a976bcee4aa986ad9276534a178af68764b9b..9b9861a4d9e7320c45fa82c03a8fd46ed7f824f8 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/ChatEventMapDelegate.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/ChatEventMapDelegate.as
@@ -43,7 +43,7 @@ package org.bigbluebutton.modules.chat.maps {
     
     private var _windowMapper:Array = [];
     
-    private var MAIN_CHAT_WINID: String = "gcWin-0";
+    private var MAIN_CHAT_WINID: String = "ChatWindow0";
     
     public function ChatEventMapDelegate() {
       this.dispatcher = dispatcher;
@@ -54,31 +54,33 @@ package org.bigbluebutton.modules.chat.maps {
     private function genWindowMappers():void{
       getChatOptions();
       for (var i:int = 0; i < chatOptions.maxNumWindows; i++) {
-        var winId: String = "gcWin-" + i;
-        _windowMapper[winId] = new GroupChatWindowMapper(winId);
+        var winId: String = "ChatWindow" + i;
+        _windowMapper[i] = new GroupChatWindowMapper(winId);
       }
     }
     
     private function findGroupChatWindowMapper(winId: String):GroupChatWindowMapper {
-      if (_windowMapper.hasOwnProperty(winId)) {
-        return _windowMapper[winId];
+      for (var i:int=0; i<_windowMapper.length; i++) {
+        var wMapper: GroupChatWindowMapper = _windowMapper[i];
+        if (wMapper.gcWinId == winId) return wMapper;
       }
       return null;
     }
     
     private function findUnusedWindowMapper():GroupChatWindowMapper {
-      for (var winId:String in _windowMapper) {
-        var wMapper: GroupChatWindowMapper = _windowMapper[winId];
+      // start looking for unused at 1 becuase 0 is reserved for the main chat
+      for (var i:int=1; i<_windowMapper.length; i++) {
+        var wMapper: GroupChatWindowMapper = _windowMapper[i];
         if (wMapper.isEmpty()) return wMapper;
       }
       return null;
     }
     
-    private function openNewPublicGrouChatWindow(chatId: String, gc:GroupChat):void {
+    private function openNewPublicGroupChatWindow(chatId: String, gc:GroupChat):void {
       var wMapper:GroupChatWindowMapper = findUnusedWindowMapper();
       if (wMapper != null) {
         // Setup a tracker for the state of this chat.
-        var gcBoxMapper:GroubChatBoxMapper = new GroubChatBoxMapper(chatId);
+        var gcBoxMapper:GroupChatBoxMapper = new GroupChatBoxMapper(chatId);
         gcBoxMapper.chatBoxOpen = true;
         wMapper.addChatBox(gcBoxMapper);    
         
@@ -97,9 +99,9 @@ package org.bigbluebutton.modules.chat.maps {
     
     private function openChatBoxForPrivateChat(chatId: String, gc: GroupChat):void {
       // Setup a tracker for the state of this chat.
-      var gcBoxMapper:GroubChatBoxMapper = new GroubChatBoxMapper(chatId);
+      var gcBoxMapper:GroupChatBoxMapper = new GroupChatBoxMapper(chatId);
       gcBoxMapper.chatBoxOpen = true;
-      var winMapper:GroupChatWindowMapper = _windowMapper[MAIN_CHAT_WINID];
+      var winMapper:GroupChatWindowMapper = findGroupChatWindowMapper(MAIN_CHAT_WINID);
       winMapper.addChatBox(gcBoxMapper);
       
       globalDispatcher.dispatchEvent(new PrivateGroupChatCreatedEvent(chatId));
@@ -108,9 +110,9 @@ package org.bigbluebutton.modules.chat.maps {
     public function createNewGroupChat(chatId: String):void {
       if (ChatModel.MAIN_PUBLIC_CHAT == chatId){
         // Setup a tracker for the state of this chat.
-        var gcBoxMapper:GroubChatBoxMapper = new GroubChatBoxMapper(chatId);
+        var gcBoxMapper:GroupChatBoxMapper = new GroupChatBoxMapper(chatId);
         gcBoxMapper.chatBoxOpen = true;
-        var winMapper:GroupChatWindowMapper = _windowMapper[MAIN_CHAT_WINID];
+        var winMapper:GroupChatWindowMapper = findGroupChatWindowMapper(MAIN_CHAT_WINID);
         winMapper.addChatBox(gcBoxMapper);
         
         var window:ChatWindow = new ChatWindow();
@@ -127,7 +129,7 @@ package org.bigbluebutton.modules.chat.maps {
       } else {
         var gc:GroupChat = LiveMeeting.inst().chats.getGroupChat(chatId);
         if (gc != null && gc.access == GroupChat.PUBLIC) {
-          openNewPublicGrouChatWindow(chatId, gc);
+          openNewPublicGroupChatWindow(chatId, gc);
         } else if (gc != null && gc.access == GroupChat.PRIVATE) {
           openChatBoxForPrivateChat(chatId, gc);
         }
@@ -154,7 +156,7 @@ package org.bigbluebutton.modules.chat.maps {
       globalDispatcher.dispatchEvent(event);		
     }
     
-    public function closeChatWindow():void {
+    public function closeChatWindow():void { //Never called
       var event:CloseWindowEvent = new CloseWindowEvent(CloseWindowEvent.CLOSE_WINDOW_EVENT);
       //	event.window = _chatWindow;
       globalDispatcher.dispatchEvent(event);
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/GroubChatBoxMapper.as b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/GroupChatBoxMapper.as
similarity index 79%
rename from bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/GroubChatBoxMapper.as
rename to bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/GroupChatBoxMapper.as
index bea65c9075f99cdf1bf7fe2d66519527558e6dea..16e67ec325119ec8a7ce55cde37645bbf6ba92af 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/GroubChatBoxMapper.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/GroupChatBoxMapper.as
@@ -1,11 +1,11 @@
 package org.bigbluebutton.modules.chat.maps
 {
-  public class GroubChatBoxMapper
+  public class GroupChatBoxMapper
   {
     private var _chatBoxId: String;
     private var _chatBoxOpen: Boolean = false;
     
-    public function GroubChatBoxMapper(chatBoxId: String)
+    public function GroupChatBoxMapper(chatBoxId: String)
     {
       _chatBoxId = chatBoxId;
     }
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/GroupChatWindowMapper.as b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/GroupChatWindowMapper.as
index 335aa5e5e79608d5cb49466ba0ddee187fb59a2e..8127a9dee013728a7cd1529103af75a7ee9f219a 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/GroupChatWindowMapper.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/GroupChatWindowMapper.as
@@ -1,10 +1,12 @@
 package org.bigbluebutton.modules.chat.maps
 {
+  import mx.collections.ArrayCollection;
+
   public class GroupChatWindowMapper
   {
     private var _gcWinId: String;
     
-    private var _chatBoxes:Array = [];
+    private var _chatBoxes:ArrayCollection = new ArrayCollection();
     
     public function GroupChatWindowMapper(gcWinId: String)
     {
@@ -19,12 +21,17 @@ package org.bigbluebutton.modules.chat.maps
       return _chatBoxes.length == 0;
     }
     
-    public function addChatBox(box: GroubChatBoxMapper):void {
-      _chatBoxes[box.chatBoxId] = box;
+    public function addChatBox(box: GroupChatBoxMapper):void {
+      _chatBoxes.addItem(box);
     }
     
-    public function removeChatBox(id: String):void {
-      delete _chatBoxes[id];
+    public function removeChatBox(id: String):void { // never called
+      for (var i:int=0; i<_chatBoxes.length; i++) {
+        var box:GroupChatBoxMapper = _chatBoxes.getItemAt(i) as GroupChatBoxMapper;
+        if (box.chatBoxId == id) {
+          _chatBoxes.removeItemAt(i);
+        }
+      }
     }
     
     public function getNumChatBoxes():int {