anchor.diff:  
   procedure TKMMenuLobby.ChatTextChanged(Sender: TObject);
   begin
  -  gGameApp.Chat.Text := Edit_Post.Text;
  +  gChat.Text := Edit_Post.Text;
   end;
   
   
   procedure TKMMenuLobby.UpdateChatControls;
   begin
  -  if gGameApp.Chat.Mode = cmWhisper then
  -    ChatMenuSelect(gGameApp.Chat.WhisperRecipient)
  +  if gChat.Mode = cmWhisper then
  +    ChatMenuSelect(gChat.WhisperRecipient)
     else
  -    ChatMenuSelect(CHAT_TAG[gGameApp.Chat.Mode]);
  -
  -  Memo_Posts.Text := gGameApp.Chat.Messages;
  +    ChatMenuSelect(CHAT_TAG[gChat.Mode]);
  +
  +  Memo_Posts.Text := gChat.Messages;
   end;
   
   
   procedure TKMMenuLobby.SetChatHandlers;
   begin
  -  gGameApp.Chat.OnError := HandleError;
  -  gGameApp.Chat.OnPost := PostMsg;
  -  gGameApp.Chat.OnPostLocal := PostLocalMsg;
  -  gGameApp.Chat.OnChange := UpdateChatControls;
  +  gChat.OnError := HandleError;
  +  gChat.OnPost := PostMsg;
  +  gChat.OnPostLocal := PostLocalMsg;
  +  gChat.OnChange := UpdateChatControls;
   
     UpdateChatControls
   end;
  
positive.code: 
  procedure TKMMenuLobby.PostMsg(const aMsg: UnicodeString);
  begin
    if gGameApp.Chat.Mode = cmWhisper then
      fNetworking.PostChat(aMsg, gGameApp.Chat.Mode, gGameApp.Chat.WhisperRecipient)
    else
      fNetworking.PostChat(aMsg, gGameApp.Chat.Mode);
  end;
  
  
  
negative.code:   end;
  
    //If we are in team chat mode and find ourselves not on a team (player went back to no team), switch back to all
    if (gChat.Mode = cmTeam) and (fNetworking.MyNetPlayer.Team = 0) then
      ChatMenuSelect(CHAT_MENU_ALL);
  
    //If we are in whisper chat mode and find the player has left, switch back to all
    if gChat.Mode = cmWhisper then
    begin
      if fNetworking.NetPlayers.ServerToLocal(gChat.WhisperRecipient) = -1 then
        ChatMenuSelect(CHAT_MENU_ALL)
      else
        ChatMenuSelect(gChat.WhisperRecipient); //In case that player changed his color
    end;
  
    CheckBox_HostControl.Checked := fNetworking.NetPlayers.HostDoesSetup;
  