diff --git a/bigbluebutton-client/resources/prod/3rd-party.html b/bigbluebutton-client/resources/prod/3rd-party.html
index aff8ceb2485e25a4522c9f1e438d85a3809f81ee..86896f5167e37796e7c9679750fed49eb8f0535f 100755
--- a/bigbluebutton-client/resources/prod/3rd-party.html
+++ b/bigbluebutton-client/resources/prod/3rd-party.html
@@ -66,6 +66,8 @@
       <button type="button" onclick="sendPrivateChat()">Send Private Chat</button>
       <button type="button" onclick="amIPresenterSync()">Am I Presenter Sync</button>
       <button type="button" onclick="amIPresenterAsync()">Am I Presenter Async</button>
+	  <button type="button" onclick="getMyUserInfoAsynch()">User Info Async</button>
+      <button type="button" onclick="getMyUserInfoSynch()">UserInfo Sync</button>
     </div>
     <div id="webcampreview" style="background-color:#FFD700;height:240px;width:320px;float:left;">
         <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540001" width="320" height="240" id="WebcamPreviewStandalone" name="WebcamPreviewStandalone" align="middle">
diff --git a/bigbluebutton-client/resources/prod/lib/3rd-party.js b/bigbluebutton-client/resources/prod/lib/3rd-party.js
index 0c874d4c0dfaad882cf61607f56aff6fa090d0d2..741fd28ec8ed0f5408ca2f492a99021c68b080a8 100755
--- a/bigbluebutton-client/resources/prod/lib/3rd-party.js
+++ b/bigbluebutton-client/resources/prod/lib/3rd-party.js
@@ -1,6 +1,15 @@
 
 var registerListeners = function() {
   console.log("Listening for events.");
+  BBB.listen("SwitchedLayoutEvent", function(bbbEvent) {
+    console.log("New Layout [" + bbbEvent.layoutID + "].");
+  });
+  BBB.listen("NewRoleEvent", function(bbbEvent) {
+    console.log("Switched Presenter [amIPresenter=" + bbbEvent.amIPresenter + ",role=" + bbbEvent.role + ",newPresenterUserID=" + bbbEvent.newPresenterUserID + "].");
+  });
+  BBB.listen("SwitchedPresenterEvent", function(bbbEvent) {
+    console.log("Switched Presenter [amIPresenter=" + bbbEvent.amIPresenter + ",role=" + bbbEvent.role + ",newPresenterUserID=" + bbbEvent.newPresenterUserID + "].");
+  });
   BBB.listen("UserLeftEvent", function(bbbEvent) {
     console.log("User [" + bbbEvent.userID + "] has left.");
   });
@@ -62,9 +71,23 @@ var amIPresenterSync = function() {
   });
 }
 
+var getMyUserInfoAsynch = function() {
+  BBB.listen("GetMyUserInfoResponse", function(bbbEvent) {
+    console.log("User info response [myUserID=" + bbbEvent.myUserID + ",myUsername=" + bbbEvent.myUsername + ",myAvatarURL=" + bbbEvent.myAvatarURL + ",myRole=" + bbbEvent.myRole + ",amIPresenter=" + bbbEvent.amIPresenter + "].");
+  });
+
+  BBB.getMyUserInfo();
+}
+
+var getMyUserInfoSynch = function() {
+  BBB.getMyUserInfo(function(userInfo) {
+    console.log("User info callback [myUserID=" + userInfo.myUserID + ",myUsername=" + userInfo.myUsername + ",myAvatarURL=" + userInfo.myAvatarURL + ",myRole=" + userInfo.myRole + ",amIPresenter=" + userInfo.amIPresenter + "].");
+  });
+}
+
 var getMyRoleAsynch = function() {
   BBB.listen("GetMyRoleResponse", function(bbbEvent) {
-    console.log("Received GetMyRoleResponse event");
+    console.log("Received GetMyRoleResponse event [" + bbbEvent.myRole + "]");
   });
 
   BBB.getMyRole();