diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/present/views/SlideView.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/present/views/SlideView.mxml
index b4c16f11f0721f80ea77425f37429b69c402fb58..4521e3f0f2ce377c40c904c8b067bd131f771a2d 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/present/views/SlideView.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/present/views/SlideView.mxml
@@ -106,8 +106,8 @@
 			private var dispatcher:Dispatcher = new Dispatcher();
 				
 			private function onCreationComplete():void{
-				swfSlideLoader.width = canvasWidth();
-				swfSlideLoader.height = canvasHeight();
+				swfSlideLoader.width = this.width;
+				swfSlideLoader.height = this.height;
 				
 				cursor = new Shape();
 				cursor.graphics.lineStyle(6, 0xFF0000, 0.6);
@@ -140,41 +140,33 @@
 			}
 					
 			private function onMouseDown(e:MouseEvent):void{						
-				canvasMouseXOnMouseDown = canvasMouseX();
-				canvasMouseYOnMouseDown = canvasMouseY();
-				loaderXOnMouseDown = loaderX();
-				loaderYOnMouseDown = loaderY();
+				canvasMouseXOnMouseDown = this.mouseX;
+				canvasMouseYOnMouseDown = this.mouseY;
+				loaderXOnMouseDown = swfSlideLoader.x;
+				loaderYOnMouseDown = swfSlideLoader.y;
 							
 				addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
 			}
 			
 			private function onMouseMove(e:MouseEvent):void {	
-				var deltaCanvasMouseX:int = canvasMouseX() - canvasMouseXOnMouseDown;
-				var deltaCanvasMouseY:int = canvasMouseY() - canvasMouseYOnMouseDown;
-													
-				moveLoaderTo(loaderXOnMouseDown + deltaCanvasMouseX, loaderYOnMouseDown + deltaCanvasMouseY);				
+				var deltaCanvasMouseX:Number = this.mouseX - canvasMouseXOnMouseDown;
+				var deltaCanvasMouseY:Number = this.mouseY - canvasMouseYOnMouseDown;
+
+				swfSlideLoader.x = loaderXOnMouseDown + deltaCanvasMouseX/2;
+				swfSlideLoader.y = loaderYOnMouseDown + deltaCanvasMouseY/2;
+				
 				fitSlideToLoader();				
 				notifyOtherParticipantsOfSlideMoving();
 			}
 			
-			private function moveLoaderTo(xOffset:int, yOffset:int):void {
-				swfSlideLoader.x = xOffset;
-				swfSlideLoader.y = yOffset;
-			}
-			
 			private function notifyOtherParticipantsOfSlideMoving():void {
 				var presentEvent:PresenterCommands = new PresenterCommands(PresenterCommands.MOVE);
-				presentEvent.xOffset = getLoaderXOffsetWithCanvas();
-				presentEvent.yOffset = getLoaderYOffsetWithCanvas();
-				presentEvent.slideToCanvasWidthRatio = getWidthRatioBetweenCanvasAndLoader();
-				presentEvent.slideToCanvasHeightRatio = getHeightRatioBetweenCanvasAndLoader();
+				presentEvent.xOffset = swfSlideLoader.x/swfSlideLoader.width;
+				presentEvent.yOffset = swfSlideLoader.y/swfSlideLoader.height;
+				presentEvent.slideToCanvasWidthRatio = swfSlideLoader.width/this.width;
+				presentEvent.slideToCanvasHeightRatio = swfSlideLoader.height/this.height;
 				dispatchEvent(presentEvent);
 			}
-			
-			private function participantShouldHandleMessage():Boolean {
-				// If presenter, then ignore the message because the presenter was the one who sent the event.
-				return ! isPresenter;
-			}
 					
 			private function onMouseUp(e:MouseEvent):void{		
 				removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
@@ -191,29 +183,33 @@
 			}
 						
 			private function resizeAndMoveLoaderInRelationToCanvas():void {
-				resizeLoaderInRelationToCanvas(presentersLoaderCanvasWidthRatio, presentersLoaderCanvasHeightRatio);
-				moveLoaderInRelationToCanvas(presentersLoaderXOffsetFromCanvas, presentersLoaderYOffsetFromCanvas);					
+				swfSlideLoader.width = this.width * presentersLoaderCanvasWidthRatio; 
+				swfSlideLoader.height = this.height * presentersLoaderCanvasHeightRatio;
+				
+				swfSlideLoader.x = swfSlideLoader.width * presentersLoaderXOffsetFromCanvas;
+				swfSlideLoader.y = swfSlideLoader.width * presentersLoaderYOffsetFromCanvas;
+				
 				fitSlideToLoader();
 			}
 						
 			private function fitSlideToLoader():void {
 				if (noSlideContentLoaded()) return;
 				
-				swfSlideLoader.content.x = loaderX();
-				swfSlideLoader.content.y = loaderY();
-				swfSlideLoader.content.width = loaderWidth();
-				swfSlideLoader.content.height = loaderHeight();	
+				swfSlideLoader.content.x = swfSlideLoader.x;
+				swfSlideLoader.content.y = swfSlideLoader.y;
+				swfSlideLoader.content.width = swfSlideLoader.width;
+				swfSlideLoader.content.height = swfSlideLoader.height;	
 				
-				zoomCanvas(loaderWidth(), loaderHeight());
+				zoomCanvas(swfSlideLoader.width, swfSlideLoader.height);
 			}
 									
 			private function fitLoaderToCanvas():void{
 				if (noSlideContentLoaded()) return;
 				
-				swfSlideLoader.width = canvasWidth();
-				swfSlideLoader.height = canvasHeight();
-				swfSlideLoader.x = canvasX();
-				swfSlideLoader.y = canvasY();
+				swfSlideLoader.width = this.width;
+				swfSlideLoader.height = this.height;
+				swfSlideLoader.x = this.x;
+				swfSlideLoader.y = this.y;
 				
 				fitSlideToLoader();						
 			}
@@ -221,34 +217,38 @@
 			private function resizeAndMoveLoaderBy(percent:Number):void {	
 				// Save the old loader dimensions. We need these to calculate
 				// the new position of the loader;
-				var oldLoaderHeight:int = loaderHeight();
-				var oldLoaderWidth:int = loaderWidth();
-							
-				resizeLoaderInRelationToCanvas(percent/100, percent/100);				
-				moveLoaderTo(calculateNewLoaderX(oldLoaderWidth), calculateNewLoaderY(oldLoaderHeight));
+				var oldLoaderHeight:int = swfSlideLoader.height;
+				var oldLoaderWidth:int = swfSlideLoader.width;
+
+				swfSlideLoader.width = this.width * percent/100; 
+				swfSlideLoader.height = this.height * percent/100;
+
+				swfSlideLoader.x = calculateNewLoaderX(oldLoaderWidth);
+				swfSlideLoader.y = calculateNewLoaderY(oldLoaderHeight);
+				
 				fitSlideToLoader();
 			}
 			
 			private function calculateNewLoaderY(oldLoaderHeight:int):int {				
-				var deltaPercentHeight:Number = (loaderHeight() - oldLoaderHeight) /oldLoaderHeight;
+				var deltaPercentHeight:Number = (swfSlideLoader.height - oldLoaderHeight) /oldLoaderHeight;
 								
-				var newLoaderY:int = (loaderY()/loaderHeight()) * deltaPercentHeight;				
+				var newLoaderY:int = (swfSlideLoader.y/swfSlideLoader.height) * deltaPercentHeight;				
 				if (newLoaderY == 0) {
-					newLoaderY = loaderY() - (deltaPercentHeight * 100);
+					newLoaderY = swfSlideLoader.y - (deltaPercentHeight * 100);
 				} else {
-					newLoaderY = loaderY() - newLoaderY;
+					newLoaderY = swfSlideLoader.y - newLoaderY;
 				}
 				
 				return newLoaderY;
 			}
 			
 			private function calculateNewLoaderX(oldLoaderWidth:int):int {				
-				var deltaPercentWidth:Number = (loaderWidth() - oldLoaderWidth) / oldLoaderWidth;
-				var newLoaderX:int = (loaderX()/loaderWidth()) * deltaPercentWidth;
+				var deltaPercentWidth:Number = (swfSlideLoader.width - oldLoaderWidth) / oldLoaderWidth;
+				var newLoaderX:int = (swfSlideLoader.x/swfSlideLoader.width) * deltaPercentWidth;
 				if (newLoaderX == 0) {
-					newLoaderX = loaderX() - (deltaPercentWidth * 100);
+					newLoaderX = swfSlideLoader.x - (deltaPercentWidth * 100);
 				} else {
-					newLoaderX = loaderX() - newLoaderX;
+					newLoaderX = swfSlideLoader.x - newLoaderX;
 				}		
 				
 				return newLoaderX;		
@@ -294,10 +294,10 @@
 						
 			private function notifyOthersOfZoomEvent():void {
 				var presentEvent:PresenterCommands = new PresenterCommands(PresenterCommands.ZOOM);
-				presentEvent.xOffset = getLoaderXOffsetWithCanvas();
-				presentEvent.yOffset = getLoaderYOffsetWithCanvas();
-				presentEvent.slideToCanvasWidthRatio = getWidthRatioBetweenCanvasAndLoader();
-				presentEvent.slideToCanvasHeightRatio = getHeightRatioBetweenCanvasAndLoader();
+				presentEvent.xOffset = swfSlideLoader.x/swfSlideLoader.width;
+				presentEvent.yOffset = swfSlideLoader.y/swfSlideLoader.height;
+				presentEvent.slideToCanvasWidthRatio = swfSlideLoader.width/this.width;
+				presentEvent.slideToCanvasHeightRatio = swfSlideLoader.height/this.height;
 				dispatchEvent(presentEvent);
 			}
 			
@@ -308,20 +308,20 @@
 			
 			private function handleMoveEvent(e:MoveEvent):void{
 				savePresentersSettings(e.xOffset, e.yOffset, e.slideToCanvasWidthRatio, e.slideToCanvasHeightRatio);				
-				if (participantShouldHandleMessage()) {
+				if (!isPresenter) {
 					resizeAndMoveLoaderInRelationToCanvas();
 				}
 				
-				moveCanvas(loaderX(), loaderY());
+				moveCanvas(swfSlideLoader.x, swfSlideLoader.y);
 			}
 									
 			private function handleZoomEvent(e:ZoomEvent):void {
 				savePresentersSettings(e.xOffset, e.yOffset, e.slideToCanvasWidthRatio, e.slideToCanvasHeightRatio);													
-				if (participantShouldHandleMessage()) {
+				if (!isPresenter) {
 					resizeAndMoveLoaderInRelationToCanvas();
 				}
 				
-				zoomCanvas(loaderWidth(), loaderHeight());
+				zoomCanvas(swfSlideLoader.width, swfSlideLoader.height);
 			}
 									
 			private function handleSlideLoadedEvent(e:SlideEvent):void{
@@ -352,21 +352,21 @@
 			
 			public function mouseCursorUpdateListener(e:MouseEvent):void{
 				if (noSlideContentLoaded()) return;				
-				notifyOthersOfPresentersCursorPosition(canvasMouseX(), canvasMouseY());
+				notifyOthersOfPresentersCursorPosition(this.mouseX, this.mouseY);
 			}
 			
 			private function notifyOthersOfPresentersCursorPosition(cursorXPosition:int, cursorYPosition:int):void {
 				var command:PresenterCommands = new PresenterCommands(PresenterCommands.SEND_CURSOR_UPDATE);				
-				command.xPercent = cursorXPosition / canvasWidth();
-				command.yPercent = cursorYPosition / canvasHeight();				
+				command.xPercent = cursorXPosition / this.width;
+				command.yPercent = cursorYPosition / this.height;				
 				dispatchEvent(command);
 			}
 			
 			private function handleUpdateCursorEvent(e:CursorEvent):void{
 				if (noSlideContentLoaded()) return;
 				
-				cursor.x = e.xPercent * canvasWidth();
-				cursor.y = e.yPercent * canvasHeight();
+				cursor.x = e.xPercent * this.width;
+				cursor.y = e.yPercent * this.height;
 								
 				if (isCursorOutsideWindow(e)) {
 					hideCursor()
@@ -390,32 +390,6 @@
 			 * Helper functions to determine offsets
 			 ******************************************************/
 			
-			private function getLoaderXOffsetWithCanvas():Number {
-				return loaderX()/loaderWidth();
-			}
-			
-			private function getLoaderYOffsetWithCanvas():Number {
-				return loaderY()/loaderHeight();
-			}
-			
-			private function getWidthRatioBetweenCanvasAndLoader():Number {
-				return loaderWidth()/canvasWidth();
-			}
-			
-			private function getHeightRatioBetweenCanvasAndLoader():Number {
-				return loaderHeight()/canvasHeight();
-			}
-			
-			private function resizeLoaderInRelationToCanvas(widthRatio:Number, heightRatio:Number):void {
-				swfSlideLoader.width = canvasWidth() * widthRatio; 
-				swfSlideLoader.height = canvasHeight() * heightRatio;
-			}
-						
-			private function moveLoaderInRelationToCanvas(loaderXOffset:Number, loaderYOffset:Number):void {
-				swfSlideLoader.x = loaderWidth() * loaderXOffset;
-				swfSlideLoader.y = loaderHeight() * loaderYOffset;
-			}
-			
 			/*
 			 * Fire an event when a single slide has been loaded.
 			 */
@@ -424,8 +398,8 @@
 			}
 			
 			private function handleSlideLoadedCompleteEvent(event:Event):void {		
-				var slideRealWidth:int = slideWidth();
-				var slideRealHeight:int = slideHeight();				
+				var slideRealWidth:int = swfSlideLoader.content.width;
+				var slideRealHeight:int = swfSlideLoader.content.height;				
 				fitLoaderToCanvas();
 				dispatchNewSlideDisplayedEvent(slideRealWidth, slideRealHeight);				
 			}
@@ -436,84 +410,6 @@
 				dispEvent.slideHeight = slideRealHeight;
 				dispatcher.dispatchEvent(dispEvent);
 			}
-
-			/*****************************************
-			 * Helper functions
-			 *****************************************/
-			/****** Slide/Content ************/ 
-			private function slideX():int {
-				return swfSlideLoader.content.x;
-			} 
-			
-			private function slideY():int {
-				return swfSlideLoader.content.y;
-			}
-			
-			private function slideMouseX():int {
-				return swfSlideLoader.content.mouseX;
-			}
-			
-			private function slideMouseY():int {
-				return swfSlideLoader.content.mouseY;
-			}
-			
-			private function slideWidth():int {
-				return swfSlideLoader.content.width;
-			}
-			
-			private function slideHeight():int {
-				return swfSlideLoader.content.height;
-			}
-			
-			/************ Canvas *****************/
-			private function canvasX():int {
-				return this.x;
-			}
-			
-			private function canvasY():int {
-				return this.y;
-			}
-			
-			private function canvasMouseX():int {
-				return this.mouseX;
-			}
-			
-			private function canvasMouseY():int {
-				return this.mouseY;
-			}
-			
-			private function canvasWidth():int {
-				return this.width;
-			}
-			
-			private function canvasHeight():int {
-				return this.height;
-			}
-			
-			/************ Loader ******************/
-			private function loaderX():int {
-				return swfSlideLoader.x;
-			}
-			
-			private function loaderY():int {
-				return swfSlideLoader.y;
-			}
-			
-			private function loaderMouseX():int {
-				return swfSlideLoader.mouseX;
-			}
-			
-			private function loaderMouseY():int {
-				return swfSlideLoader.mouseY;
-			}
-			
-			private function loaderWidth():int {
-				return swfSlideLoader.width;
-			}
-			
-			private function loaderHeight():int {
-				return swfSlideLoader.height;
-			}
 						
 			private function isCursorOutsideWindow(e:CursorEvent):Boolean {
 				return (e.xPercent > 1 && e.yPercent > 1) || (cursor.x > this.width || cursor.y > this.height);
@@ -549,8 +445,8 @@
 			}
 			
 			public function moveCanvas(x:int, y:int):void{
-				overlayChildrenHolder.x = loaderX() * 2;
-				overlayChildrenHolder.y = loaderY() * 2;
+				overlayChildrenHolder.x = swfSlideLoader.x * 2;
+				overlayChildrenHolder.y = swfSlideLoader.y * 2;
 				
 				if (overlayCanvas != null) overlayCanvas.moveCanvas(overlayChildrenHolder.x, overlayChildrenHolder.y);
 			}
@@ -558,7 +454,7 @@
 			public function zoomCanvas(width:int, height:int):void{
 				overlayChildrenHolder.width = width;
 				overlayChildrenHolder.height = height;
-				moveCanvas(loaderX(), loaderY());
+				moveCanvas(swfSlideLoader.x, swfSlideLoader.y);
 				if (overlayCanvas != null) overlayCanvas.zoomCanvas(width, height);
 			}