diff --git a/bbb-api-demo/src/main/webapp/demo_footer.jsp b/bbb-api-demo/src/main/webapp/demo_footer.jsp
index d1280771e63cc0b823d322168dc03f0586d1de8a..385c56fad8063ac5d5628054b4ac900d48cc2333 100755
--- a/bbb-api-demo/src/main/webapp/demo_footer.jsp
+++ b/bbb-api-demo/src/main/webapp/demo_footer.jsp
@@ -1,2 +1,2 @@
 <p/>
-<small>These API demos use the <a href="http://code.google.com/p/bigbluebutton/wiki/081API">BigBlueButton API</a>.  The source code for these demos is available <a href="https://github.com/bigbluebutton/bigbluebutton/tree/master/bbb-api-demo/src/main/webapp/"> here</a>.</small>
+<small>These API demos use the <a href="http://docs.bigbluebutton.org/dev/api.html">BigBlueButton API</a>.  The source code for these demos is available <a href="https://github.com/bigbluebutton/bigbluebutton/tree/master/bbb-api-demo/src/main/webapp/"> here</a>.</small>
diff --git a/bbb-fsesl-client/src/main/java/org/freeswitch/esl/client/internal/debug/ChannelEventRunnable.java b/bbb-fsesl-client/src/main/java/org/freeswitch/esl/client/internal/debug/ChannelEventRunnable.java
index 685772cad253d637f98f8e57cc467fedf2eb1226..048d735dc5f88a8d217d374d5b7febd357c529e1 100644
--- a/bbb-fsesl-client/src/main/java/org/freeswitch/esl/client/internal/debug/ChannelEventRunnable.java
+++ b/bbb-fsesl-client/src/main/java/org/freeswitch/esl/client/internal/debug/ChannelEventRunnable.java
@@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory;
  * @author The Netty Project (netty-dev@lists.jboss.org)
  * @author Trustin Lee (tlee@redhat.com)
  *
- * @version $Rev: 1685 $, $Date: 2009-08-28 16:15:49 +0900 (금, 28 8 2009) $
+ * @version $Rev: 1685 $, $Date: 2009-08-28 16:15:49 +0900 $
  *
  */
 public class ChannelEventRunnable implements Runnable, EstimatableObjectWrapper {
diff --git a/bbb-fsesl-client/src/main/java/org/freeswitch/esl/client/internal/debug/ExecutionHandler.java b/bbb-fsesl-client/src/main/java/org/freeswitch/esl/client/internal/debug/ExecutionHandler.java
index 91bae346605829553ead80477e2b001460c9439d..5a24fa86128f55370f858c77b777be44f2968f1f 100644
--- a/bbb-fsesl-client/src/main/java/org/freeswitch/esl/client/internal/debug/ExecutionHandler.java
+++ b/bbb-fsesl-client/src/main/java/org/freeswitch/esl/client/internal/debug/ExecutionHandler.java
@@ -54,7 +54,7 @@ import org.jboss.netty.util.internal.ExecutorUtil;
  * @author The Netty Project (netty-dev@lists.jboss.org)
  * @author Trustin Lee (tlee@redhat.com)
  *
- * @version $Rev: 1685 $, $Date: 2009-08-28 16:15:49 +0900 (금, 28 8 2009) $
+ * @version $Rev: 1685 $, $Date: 2009-08-28 16:15:49 +0900 $
  *
  * @apiviz.landmark
  * @apiviz.has java.util.concurrent.ThreadPoolExecutor
diff --git a/bigbluebutton-client/locale/en_US/bbbResources.properties b/bigbluebutton-client/locale/en_US/bbbResources.properties
index 45d834f68b25a3f9f8b40b72a29a129df3bbd2e9..60c604a87aba24e3742d8e717454e651cf62826a 100755
--- a/bigbluebutton-client/locale/en_US/bbbResources.properties
+++ b/bigbluebutton-client/locale/en_US/bbbResources.properties
@@ -174,13 +174,16 @@ bbb.users.usersGrid.mediaItemRenderer.micOff = Microphone off
 bbb.users.usersGrid.mediaItemRenderer.micOn = Microphone on
 bbb.users.usersGrid.mediaItemRenderer.noAudio = Not in audio conference
 bbb.users.emojiStatus.clear = Clear
-bbb.users.emojiStatus.raiseHand = Raise hand
-bbb.users.emojiStatus.happy = Happy
-bbb.users.emojiStatus.smile = Smile
-bbb.users.emojiStatus.sad = Sad
-bbb.users.emojiStatus.confused = Confused
-bbb.users.emojiStatus.neutral = Neutral
-bbb.users.emojiStatus.away = Away
+bbb.users.emojiStatus.clear.toolTip = Clear status
+bbb.users.emojiStatus.close = Close
+bbb.users.emojiStatus.close.toolTip = Close status popup
+bbb.users.emojiStatus.raiseHand = Raise hand status
+bbb.users.emojiStatus.happy = Happy status
+bbb.users.emojiStatus.smile = Smile status
+bbb.users.emojiStatus.sad = Sad status
+bbb.users.emojiStatus.confused = Confused status
+bbb.users.emojiStatus.neutral = Neutral status
+bbb.users.emojiStatus.away = Away status
 bbb.presentation.title = Presentation
 bbb.presentation.titleWithPres = Presentation: {0}
 bbb.presentation.quickLink.label = Presentation Window
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/EmojiGrid.as b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/EmojiGrid.as
old mode 100644
new mode 100755
index 2f91892df4afc640aa1e174608bedf0e9970227b..cf422927c6f314be061a989b990b003663d82d03
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/EmojiGrid.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/EmojiGrid.as
@@ -46,10 +46,8 @@ package org.bigbluebutton.modules.users.views {
 			this.verticalScrollPolicy = ScrollPolicy.OFF;
 			width = 134;
 			drawEmoji();
-			if (UserManager.getInstance().getConference().myEmojiStatus != "none") {
-				addRemoveEmoji();
-				this.setStyle("paddingBottom", 10);
-			}
+			addRemoveEmoji();
+			this.setStyle("paddingBottom", 10);
 		}
 		
 		private function drawEmoji():void {
@@ -77,9 +75,16 @@ package org.bigbluebutton.modules.users.views {
 		private function addRemoveEmoji():void {
 			var button:Button = new Button();
 			button.id = "btnnone";
-			button.height = 64;
 			button.height = 24;
-			button.label = ResourceUtil.getInstance().getString('bbb.users.emojiStatus.clear');
+			if (UserManager.getInstance().getConference().myEmojiStatus != "none") {
+				button.label = ResourceUtil.getInstance().getString('bbb.users.emojiStatus.clear');
+				button.toolTip = ResourceUtil.getInstance().getString('bbb.users.emojiStatus.clear.toolTip');
+				button.accessibilityName = ResourceUtil.getInstance().getString('bbb.users.emojiStatus.clear.toolTip');
+			} else {
+				button.label = ResourceUtil.getInstance().getString('bbb.users.emojiStatus.close');
+				button.toolTip = ResourceUtil.getInstance().getString('bbb.users.emojiStatus.close.toolTip');
+				button.accessibilityName = ResourceUtil.getInstance().getString('bbb.users.emojiStatus.close.toolTip');
+			}
 			button.addEventListener(MouseEvent.CLICK, buttonMouseEventHandler);
 			this.addChild(button);
 		}
diff --git a/bigbluebutton-html5/app/client/globals.js b/bigbluebutton-html5/app/client/globals.js
index 7fbb37c967a4143b91013d10f81dafad0b6ed4ab..54e5c98fdd256355997c70cc23a7b6e06905249a 100755
--- a/bigbluebutton-html5/app/client/globals.js
+++ b/bigbluebutton-html5/app/client/globals.js
@@ -80,7 +80,7 @@ Handlebars.registerHelper("getCurrentMeeting", () => {
 
 Handlebars.registerHelper("getCurrentSlide", () => {
   let result;
-  result = BBB.getCurrentSlide("helper getCurrentSlide");
+  result = BBB.getCurrentSlide();
   // console.log "result=#{JSON.stringify result}"
   return result;
 });
@@ -96,7 +96,7 @@ Handlebars.registerHelper("getMeetingName", () => {
 
 Handlebars.registerHelper("getShapesForSlide", () => {
   let currentSlide, ref;
-  currentSlide = BBB.getCurrentSlide("helper getShapesForSlide");
+  currentSlide = BBB.getCurrentSlide();
 
   // try to reuse the lines above
   return Meteor.Shapes.find({
diff --git a/bigbluebutton-html5/app/client/lib/bbb_api_bridge.js b/bigbluebutton-html5/app/client/lib/bbb_api_bridge.js
index 5198f62159bcab49f6986fc81fc2fceb27cfed14..53fce8cb9158c25b29e8a6dfae39981427b80161 100755
--- a/bigbluebutton-html5/app/client/lib/bbb_api_bridge.js
+++ b/bigbluebutton-html5/app/client/lib/bbb_api_bridge.js
@@ -152,7 +152,7 @@ this.BBB = (function() {
 
     return lockedMicForRoom && BBB.amILocked();
   };
-  BBB.getCurrentSlide = function(callingLocaton) {
+  BBB.getCurrentSlide = function() {
     let currentPresentation, currentSlide, presentationId, ref;
     currentPresentation = Meteor.Presentations.findOne({
       "presentation.current": true
@@ -162,7 +162,6 @@ this.BBB = (function() {
       "presentationId": presentationId,
       "slide.current": true
     });
-    // console.log "trigger:#{callingLocaton} currentSlideId=#{currentSlide?._id}"
     return currentSlide;
   };
   BBB.getMeetingName = function() {
diff --git a/bigbluebutton-html5/app/client/main.js b/bigbluebutton-html5/app/client/main.js
index 481acd0e614efcbaeb218ff85d0aaf28ad3e6189..ea419e1240ac777ea6d3762f131cdbc343e76304 100755
--- a/bigbluebutton-html5/app/client/main.js
+++ b/bigbluebutton-html5/app/client/main.js
@@ -5,7 +5,6 @@ loadLib = function(libname) {
   let retryMessageCallback, successCallback;
   successCallback = function() {};
   retryMessageCallback = function(param) {
-    //return(Meteor.log.info("Failed to load library"), param);
     return console.log("Failed to load library", param);
   };
   return Meteor.Loader.loadJs(`${window.location.origin}/client/lib/${libname}`, successCallback, 10000).fail(retryMessageCallback);
diff --git a/bigbluebutton-html5/app/client/views/whiteboard/slide.js b/bigbluebutton-html5/app/client/views/whiteboard/slide.js
index 7cae9337931691d20d2a8d9452deeb95c57f2578..c86f1793bd874e98ed2fde62d6eeba09401dc28d 100755
--- a/bigbluebutton-html5/app/client/views/whiteboard/slide.js
+++ b/bigbluebutton-html5/app/client/views/whiteboard/slide.js
@@ -5,7 +5,7 @@ Template.slide.rendered = function() {
 this.reactOnSlideChange = (_this => {
   return function() {
     let currentSlide, pic, ref;
-    currentSlide = BBB.getCurrentSlide("slide.rendered");
+    currentSlide = BBB.getCurrentSlide();
     pic = new Image();
     pic.onload = function() {
       let ref;
@@ -29,7 +29,6 @@ this.reactOnSlideChange = (_this => {
 })(this);
 
 this.createWhiteboardPaper = (_this => {
-  // console.log "CREATING WPM"
   return function(callback) {
     _this.whiteboardPaperModel = new Meteor.WhiteboardPaperModel('whiteboard-paper');
     return callback(_this.whiteboardPaperModel);
@@ -38,7 +37,7 @@ this.createWhiteboardPaper = (_this => {
 
 this.displaySlide = function(wpm) {
   let adjustedDimensions, currentSlide, ref;
-  currentSlide = BBB.getCurrentSlide("displaySlide");
+  currentSlide = BBB.getCurrentSlide();
   wpm.create();
   adjustedDimensions = scaleSlide(getInSession('slideOriginalWidth'), getInSession('slideOriginalHeight'));
   wpm._displayPage(
@@ -57,7 +56,7 @@ this.manuallyDisplayShapes = function() {
   }) != null) {
     return;
   }
-  currentSlide = BBB.getCurrentSlide("manuallyDisplayShapes");
+  currentSlide = BBB.getCurrentSlide();
   wpm = this.whiteboardPaperModel;
   shapes = Meteor.Shapes.find({
     whiteboardId: currentSlide != null ? (ref = currentSlide.slide) != null ? ref.id : void 0 : void 0
diff --git a/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.js b/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.js
index 3b3f33a2445938f5de082d384e3244fa23070b2d..43a539bf16b223d520a5e7e84284d191691f444b 100755
--- a/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.js
+++ b/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.js
@@ -10,35 +10,35 @@ this.scaleWhiteboard = function(callback) {
   if(callback) {
     callback();
   }
-  return {
-    isPollStarted() {
-      if(BBB.isPollGoing(getInSession('userId'))) {
-        return true;
-      } else {
-        return false;
-      }
-    },
-    hasNoPresentation() {
-      return Meteor.Presentations.findOne({
-        'presentation.current': true
-      });
-    },
-    forceSlideShow() {
-      return reactOnSlideChange();
-    },
-    clearSlide() {
-      let ref;
-
-      //clear the slide
-      if(typeof whiteboardPaperModel !== "undefined" && whiteboardPaperModel !== null) {
-        whiteboardPaperModel.removeAllImagesFromPaper();
-      }
+};
 
-      // hide the cursor
-      return typeof whiteboardPaperModel !== "undefined" && whiteboardPaperModel !== null ? (ref = whiteboardPaperModel.cursor) != null ? ref.remove() : void 0 : void 0;
+Template.whiteboard.helpers({
+  isPollStarted() {
+    if(BBB.isPollGoing(getInSession('userId'))) {
+      return true;
+    } else {
+      return false;
     }
-  };
-};
+  },
+  hasNoPresentation() {
+    return Meteor.Presentations.findOne({
+      'presentation.current': true
+    });
+  },
+  forceSlideShow() {
+    return reactOnSlideChange();
+  },
+  clearSlide() {
+    let ref;
+    //clear the slide
+    if(typeof whiteboardPaperModel !== "undefined" && whiteboardPaperModel !== null) {
+      whiteboardPaperModel.removeAllImagesFromPaper();
+    }
+    //hide the cursor
+    return typeof whiteboardPaperModel !== "undefined" && whiteboardPaperModel !== null ? (ref = whiteboardPaperModel.cursor) != null ? ref.remove() : void 0 : void 0;
+  }
+});
+
 
 Template.whiteboard.events({
   'click .whiteboardFullscreenButton'(event, template) {
@@ -163,7 +163,6 @@ Template.whiteboardControls.helpers({
     totalSlideNum = (ref1 = Meteor.Slides.find({
       'presentationId': currentPresentation != null ? currentPresentation.presentation.id : void 0
     })) != null ? ref1.count() : void 0;
-    console.log('slide', currentSlideNum);
     if(currentSlideNum !== void 0) {
       return `${currentSlideNum}/${totalSlideNum}`;
     } else {
diff --git a/bigbluebutton-html5/app/client/whiteboard_models/utils.js b/bigbluebutton-html5/app/client/whiteboard_models/utils.js
index c3f742dc30a3271ea80ff353c053883c6ec816f8..e42a1e911609eefa9fe36043546866862444886e 100755
--- a/bigbluebutton-html5/app/client/whiteboard_models/utils.js
+++ b/bigbluebutton-html5/app/client/whiteboard_models/utils.js
@@ -43,7 +43,7 @@ this.formatThickness = function(thickness) {
 // applies zooming to the stroke thickness
 this.zoomStroke = function(thickness) {
   let currentSlide, ratio;
-  currentSlide = BBB.getCurrentSlide("zoomStroke");
+  currentSlide = BBB.getCurrentSlide();
   ratio = ((currentSlide != null ? currentSlide.slide.width_ratio : void 0) + (currentSlide != null ? currentSlide.slide.height_ratio : void 0)) / 2;
   return thickness * 100 / ratio;
 };
diff --git a/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_ellipse.js b/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_ellipse.js
index 8803ad3fc9190e58061ed679a51d3ff252406bf7..ca7805c85c87d3a1f14e136258db4190d7248256 100755
--- a/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_ellipse.js
+++ b/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_ellipse.js
@@ -16,8 +16,6 @@ this.WhiteboardEllipseModel = (function() {
     // @param    {string} colour        the colour of the object
     // @param    {number} thickness the thickness of the object's line(s)
     make(info) {
-      //console.log "Whiteboard - Making ellipse: "
-      //console.log info
       let color, thickness, x, y;
       if((info != null ? info.points : void 0) != null) {
         x = info.points[0];
@@ -39,7 +37,6 @@ this.WhiteboardEllipseModel = (function() {
     // @param    {number} y2 the y value of the bottom right corner in percent of current slide size
     // @param    {boolean} square (draw a circle or not
     update(info) {
-      //console.log info
       let circle, coords, r, ref, ref1, reversed, rx, ry, x1, x2, y1, y2;
       if((info != null ? info.points : void 0) != null) {
         x1 = info.points[0];
@@ -72,8 +69,6 @@ this.WhiteboardEllipseModel = (function() {
             y2: y2
           };
 
-          //console.log(coords)
-
           rx = (x2 - x1) / 2;
           ry = (y2 - y1) / 2;
           r = {
diff --git a/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_paper.js b/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_paper.js
index 5e6185c7e53123dd4ed59639a0e40d86c7432aaf..27a84ea3ff8503498cffc9cf74670594e97aa9f4 100755
--- a/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_paper.js
+++ b/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_paper.js
@@ -209,9 +209,6 @@ Meteor.WhiteboardPaperModel = (function() {
       let base, base1, i, len, obj, tool, toolModel;
       data.thickness *= this.adjustedWidth / 1000;
       tool = null;
-      //TODO pay attention to this array, data in this array slows down the whiteboard
-      //console.log @current
-      //console.log @
       this.current[shape] = this._createTool(shape);
       toolModel = this.current[shape];
       tool = this.current[shape].make(data);
@@ -287,8 +284,8 @@ Meteor.WhiteboardPaperModel = (function() {
 
     _updateZoomRatios() {
       let currentSlideDoc;
-      currentSlideDoc = BBB.getCurrentSlide("_updateZoomRatios");
-      this.widthRatio = currentSlideDoc != null ? currentSlideDoc.slide.width_ratio : void 0;
+      currentSlideDoc = BBB.getCurrentSlide();
+      this.widthRatio = (currentSlideDoc != null ? currentSlideDoc.slide.width_ratio : void 0) || 100;
       return this.heightRatio = currentSlideDoc != null ? currentSlideDoc.slide.height_ratio : void 0;
     }
 
@@ -377,7 +374,7 @@ Meteor.WhiteboardPaperModel = (function() {
       if(url != null ? url.match(/http[s]?:/) : void 0) {
         return url;
       } else {
-        return console.log(`The url '${url}'' did not match the expected format of: http/s`);
+        return console.log(`The url '${url}' did not match the expected format of: http/s`);
         //globals.presentationServer + url
       }
     }
@@ -390,7 +387,7 @@ Meteor.WhiteboardPaperModel = (function() {
       this._updateContainerDimensions();
       boardWidth = this.containerWidth;
       boardHeight = this.containerHeight;
-      currentSlide = BBB.getCurrentSlide("_displayPage");
+      currentSlide = BBB.getCurrentSlide();
       currentPresentation = Meteor.Presentations.findOne({
         "presentation.current": true
       });
diff --git a/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_text.js b/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_text.js
index 99eb461ee96ae2f6f612397fe067a358490d6ed9..6dad76a3d71bde483d34eec1d1dcd48e906a31ce 100755
--- a/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_text.js
+++ b/bigbluebutton-html5/app/client/whiteboard_models/whiteboard_text.js
@@ -14,7 +14,6 @@ this.WhiteboardTextModel = (function() {
 
     // Make a text on the whiteboard
     make(startingData) {
-      //console.log "making text:" + JSON.stringify startingData
       let calcFontSize, colour, fontSize, height, text, width, x, y;
       x = startingData.x;
       y = startingData.y;
@@ -47,7 +46,6 @@ this.WhiteboardTextModel = (function() {
     // Update text shape drawn
     // @param  {object} the object containing the shape info
     update(startingData) {
-      //console.log "updating text" + JSON.stringify startingData
       let calcFontSize, cell, colour, computedTextLength, cumulY, curNumChars, dashArray, dashFound, dy, fontSize, height, i, indexPos, line, maxWidth, myText, myTextNode, result, svgNS, tempText, tspanEl, word, words, x, y;
       x = startingData.x;
       y = startingData.y;
diff --git a/bigbluebutton-html5/app/server/collection_methods/slides.js b/bigbluebutton-html5/app/server/collection_methods/slides.js
index a5377982c835b983ec7769ddf9825d675cdeb67a..4fb130481ae31603cc67e122661388933e4ab9bf 100755
--- a/bigbluebutton-html5/app/server/collection_methods/slides.js
+++ b/bigbluebutton-html5/app/server/collection_methods/slides.js
@@ -13,11 +13,20 @@ this.displayThisSlide = function(meetingId, newSlideId, slideObject) {
       "slide.current": false
     }
   });
-  // for the new slide: remove the version which came with presentation_shared_message from the Collection
-	// to avoid using old data (this message contains everything we need for the new slide)
-  removeSlideFromCollection(meetingId, newSlideId);
-  // add the new slide to the collection
-  return addSlideToCollection(meetingId, presentationId, slideObject);
+
+  //change current to true for the new slide and update its ratios and offsets
+  Meteor.Slides.update({
+    presentationId: presentationId,
+    "slide.id": newSlideId
+  }, {
+    $set: {
+      "slide.current": true,
+      "slide.height_ratio": slideObject.height_ratio,
+      "slide.width_ratio": slideObject.width_ratio,
+      "slide.x_offset": slideObject.x_offset,
+      "slide.y_offset": slideObject.y_offset
+    }
+  });
 };
 
 this.addSlideToCollection = function(meetingId, presentationId, slideObject) {
@@ -48,23 +57,6 @@ this.addSlideToCollection = function(meetingId, presentationId, slideObject) {
   }
 };
 
-this.removeSlideFromCollection = function(meetingId, slideId) {
-  let id;
-  if((meetingId != null) && (slideId != null) && (Meteor.Slides.findOne({
-    meetingId: meetingId,
-    "slide.id": slideId
-  }) != null)) {
-    id = Meteor.Slides.findOne({
-      meetingId: meetingId,
-      "slide.id": slideId
-    });
-    if(id != null) {
-      Meteor.Slides.remove(id._id);
-      return Meteor.log.info(`----removed slide[${slideId}] from ${meetingId}`);
-    }
-  }
-};
-
 // called on server start and meeting end
 this.clearSlidesCollection = function(meetingId) {
   if(meetingId != null) {
diff --git a/bigbluebutton-html5/app/server/server.js b/bigbluebutton-html5/app/server/server.js
index c83eaf0d73b245f92b5703dc03b5f40b11abd312..38dad8fcfa89d30d3f7552e985188af2ad8b99ee 100755
--- a/bigbluebutton-html5/app/server/server.js
+++ b/bigbluebutton-html5/app/server/server.js
@@ -343,7 +343,6 @@ Meteor.startup(() => {
             "presentation.current": false
           }
         });
-
         //update(if already present) entirely the presentation with the fresh data
         removePresentationFromCollection(meetingId, presentationId);
         addPresentationToCollection(meetingId, message.payload.presentation);
@@ -355,9 +354,6 @@ Meteor.startup(() => {
             (ref10 = message.payload.presentation) != null ? ref10.id : void 0,
             slide
           );
-          if(slide.current) {
-            displayThisSlide(meetingId, slide.id, slide);
-          }
         }
         return callback();
 
@@ -483,17 +479,29 @@ Meteor.startup(() => {
         xOffset = (ref17 = message.payload.page) != null ? ref17.x_offset : void 0;
         yOffset = (ref18 = message.payload.page) != null ? ref18.y_offset : void 0;
         presentationId = slideId.split("/")[0];
-        Meteor.Slides.update({
-          presentationId: presentationId,
-          "slide.current": true
-        }, {
-          $set: {
-            "slide.height_ratio": heightRatio,
-            "slide.width_ratio": widthRatio,
-            "slide.x_offset": xOffset,
-            "slide.y_offset": yOffset
-          }
-        });
+
+        /*In the case when we don't resize, but switch a slide, this message
+        follows a 'presentation_page_changed' and all these properties are already set. */
+        var currentSlide = Meteor.Slides.findOne({presentationId: presentationId,
+          "slide.current": true});
+        if(currentSlide) {
+          currentSlide = currentSlide.slide;
+        }
+        if(currentSlide.height_ratio != heightRatio || currentSlide.width_ratio != widthRatio
+          || currentSlide.x_offset != xOffset || currentSlide.y_offset != yOffset) {
+          Meteor.Slides.update({
+            presentationId: presentationId,
+            "slide.current": true
+          }, {
+            $set: {
+              "slide.height_ratio": heightRatio,
+              "slide.width_ratio": widthRatio,
+              "slide.x_offset": xOffset,
+              "slide.y_offset": yOffset
+            }
+          });
+        }
+
         return callback();
 
       // for now not handling this serially #TODO