diff --git a/bigbluebutton-html5/app/client/globals.coffee b/bigbluebutton-html5/app/client/globals.coffee
index d8d520acb2d40622c53a93241a0a79ae5ef21586..b09fb6657395df6b6b22df54249b9f35ea4db52a 100755
--- a/bigbluebutton-html5/app/client/globals.coffee
+++ b/bigbluebutton-html5/app/client/globals.coffee
@@ -210,6 +210,49 @@ Handlebars.registerHelper 'whiteboardSize', (section) ->
 @toggleMenu = ->
   setInSession 'display_menu', !getInSession 'display_menu'
 
+@removeFullscreenStyles = ->
+  $('#whiteboard-paper').removeClass('verticallyCentered')
+  $('#chat').removeClass('invisible')
+  $('#users').removeClass('invisible')
+  $('#navbar').removeClass('invisible')
+  $('.fullscreenButton').removeClass('exitFullscreenButton')
+  $('.fullscreenButton').addClass('whiteboardFullscreenButton')
+  $('.fullscreenButton i').removeClass('ion-arrow-shrink')
+  $('.fullscreenButton i').addClass('ion-arrow-expand')
+
+@enterWhiteboardFullscreen = ->
+  element = document.getElementById('whiteboard')
+  if element.requestFullscreen
+    element.requestFullscreen()
+  else if element.mozRequestFullScreen
+    element.mozRequestFullScreen()
+    $('.fullscreenButton').addClass('iconFirefox') # browser-specific icon sizing
+  else if element.webkitRequestFullscreen
+    element.webkitRequestFullscreen()
+    $('.fullscreenButton').addClass('iconChrome') # browser-specific icon sizing
+  else if element.msRequestFullscreen
+    element.msRequestFullscreen()
+  $('#chat').addClass('invisible')
+  $('#users').addClass('invisible')
+  $('#navbar').addClass('invisible')
+  $('.fullscreenButton').removeClass('whiteboardFullscreenButton')
+  $('.fullscreenButton').addClass('exitFullscreenButton')
+  $('.fullscreenButton i').removeClass('ion-arrow-expand')
+  $('.fullscreenButton i').addClass('ion-arrow-shrink')
+  $('#whiteboard-paper').addClass('verticallyCentered')
+  $('#whiteboard').bind 'webkitfullscreenchange', (e) ->
+    if document.webkitFullscreenElement is null
+      $('#whiteboard').unbind('webkitfullscreenchange')
+      $('.fullscreenButton').removeClass('iconChrome')
+      removeFullscreenStyles()
+      redrawWhiteboard()
+  $(document).bind 'mozfullscreenchange', (e) -> # target is always the document in Firefox
+    if document.mozFullScreenElement is null
+      $(document).unbind('mozfullscreenchange')
+      $('.fullscreenButton').removeClass('iconFirefox')
+      removeFullscreenStyles()
+      redrawWhiteboard()
+
 @closePushMenus = ->
   setInSession 'display_usersList', false
   setInSession 'display_menu', false
diff --git a/bigbluebutton-html5/app/client/stylesheets/style.less b/bigbluebutton-html5/app/client/stylesheets/style.less
index b9e54ddcc90a3ad7de9fa6ede23e53f109176a61..c97d0e5a91b49b0de363df7fc102bd705e1c8a4c 100755
--- a/bigbluebutton-html5/app/client/stylesheets/style.less
+++ b/bigbluebutton-html5/app/client/stylesheets/style.less
@@ -473,3 +473,24 @@ body {
 .top-bar {
   line-height: 0;
 }
+
+.btn {
+  @media @mobile-portrait-with-keyboard, @mobile-portrait {
+    padding-left: 10px;
+    padding-right: 10px;
+  }
+  i {
+    @media @desktop-portrait, @landscape {
+      font-size: 30px;
+    }
+    @media @mobile-portrait-with-keyboard, @mobile-portrait {
+      font-size: 80px;
+    }
+  }
+}
+
+.verticallyCentered {
+  position: relative;
+  top: 50%;
+  transform: translateY(-50%);
+}
diff --git a/bigbluebutton-html5/app/client/stylesheets/whiteboard.less b/bigbluebutton-html5/app/client/stylesheets/whiteboard.less
index 392b3ac1da9826921f34f6c7565dd94213a4c540..48fbf53f94c8191a597e62131f49b703885660ec 100755
--- a/bigbluebutton-html5/app/client/stylesheets/whiteboard.less
+++ b/bigbluebutton-html5/app/client/stylesheets/whiteboard.less
@@ -66,6 +66,7 @@
 }
 
 #whiteboard-container {
+  position: relative; // makes the fullscreen button's absolute position work
   @media @landscape {
     display: -moz-flex;
     display: -ms-flexbox;
@@ -165,3 +166,59 @@
 #presentationProgress {
   font-size: 25px;
 }
+
+.whiteboardFullscreenButton {
+  position: absolute;
+  top: 0;
+  right: 0;
+  margin-bottom: 0;
+  padding: 0;
+  &, &:hover {
+    background-color: transparent;
+  }
+  i {
+    color: black;
+  }
+  @media @landscape {
+    height: 50px;
+    width: 50px;
+  }
+  @media @mobile-portrait-with-keyboard, @mobile-portrait {
+    height: 100px;
+    width: 10%;
+  }
+}
+
+.exitFullscreenButton {
+  position: absolute;
+  top: 0;
+  right: 0;
+  margin-bottom: 0;
+  padding: 0;
+  &, &:hover {
+    background-color: transparent;
+  }
+  i {
+    color: black;
+  }
+  @media @landscape {
+    height: 50px;
+    width: 50px;
+  }
+  @media @mobile-portrait-with-keyboard, @mobile-portrait {
+    height: 5%;
+    width: 10%;
+  }
+}
+
+.iconChrome {
+  i {
+    font-size: 200%;
+  }
+}
+
+.iconFirefox {
+  i {
+    font-size: 500%;
+  }
+}
diff --git a/bigbluebutton-html5/app/client/views/sharedTemplates.html b/bigbluebutton-html5/app/client/views/sharedTemplates.html
index 48a9005bd57960a35c197f21cc57c8f562d568a9..33901af70805311e7ed04c1a4750394af7d4f5ae 100755
--- a/bigbluebutton-html5/app/client/views/sharedTemplates.html
+++ b/bigbluebutton-html5/app/client/views/sharedTemplates.html
@@ -4,7 +4,7 @@
         <span>{{text}}</span>
       {{else}}
         {{#if i_class}}
-          <i class="{{i_class}}" style="font-size:30px"></i><span>{{label}}</span>
+          <i class="{{i_class}}"></i><span>{{label}}</span>
         {{/if}}
       {{/if}}
     </button>
diff --git a/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.coffee b/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.coffee
index a09de921d90c10deedacf1fbb7b49c614c023f86..a07c3cf59635500644ed3b18c7e581f392a0598c 100755
--- a/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.coffee
+++ b/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.coffee
@@ -21,76 +21,22 @@ Template.whiteboard.helpers
       return ''
 
 Template.whiteboard.events
-  "click .previousSlide":(event) ->
+  'click .previousSlide':(event) ->
     BBB.goToPreviousPage()
 
-  "click .nextSlide":(event) ->
+  'click .nextSlide':(event) ->
     BBB.goToNextPage()
 
   'click .switchSlideButton': (event) ->
     $('.tooltip').hide()
 
-  "click .fullscreenWhiteboardButton": (event, template) ->
-    elem = document.getElementById("whiteboard")
-    if elem.requestFullscreen
-      elem.requestFullscreen()
-    else if elem.msRequestFullscreen
-      elem.msRequestFullscreen()
-    else if elem.mozRequestFullScreen
-      elem.mozRequestFullScreen()
-    else if elem.webkitRequestFullscreen
-      elem.webkitRequestFullscreen()
-    $('#whiteboard-paper').addClass('invisible')
-    $('#chat').addClass('invisible')
-    $('#users').addClass('invisible')
-    $('#footer').addClass('invisible')
-    $('#navbar').addClass('invisible')
-    $('#main').css('padding-top', '0px')
-    $('html').css('height', '100%')
-    $('html').css('width', '100%')
-    $('html').css('overflow', 'hidden')
-    $('body').css('height', '100%')
-    $('body').css('width', '100%')
-    $('body').css('overflow', 'hidden')
-    setTimeout () ->
-      redrawWhiteboard () ->
-        $('#whiteboard-paper').removeClass('invisible')
-        $('#whiteboard-paper').addClass('vertically-centered')
-    , 100
+  'click .whiteboardFullscreenButton': (event, template) ->
+    enterWhiteboardFullscreen()
 
-    # Listens for the fullscreen state change (user leaves fullscreen mode)
-
-    # Chrome
-    $('#whiteboard').bind 'webkitfullscreenchange', (e) ->
-      if document.webkitFullscreenElement is null
-        $('#whiteboard').unbind('webkitfullscreenchange')
-        $('#whiteboard-paper').removeClass('vertically-centered')
-        $('#chat').removeClass('invisible')
-        $('#users').removeClass('invisible')
-        $('#footer').removeClass('invisible')
-        $('#navbar').removeClass('invisible')
-        $('html').css('height', '')
-        $('html').css('width', '')
-        $('html').css('overflow', '')
-        $('body').css('height', '')
-        $('body').css('width', '')
-        $('body').css('overflow', '')
-        $('#main').css('padding-top', '')
-        redrawWhiteboard()
-    # Firefox
-    $(document).bind 'mozfullscreenchange', (e) -> # target is always the document in Firefox
-      if document.mozFullScreenElement is null
-        $(document).unbind('mozfullscreenchange')
-        $('#whiteboard-paper').removeClass('vertically-centered')
-        $('#chat').removeClass('invisible')
-        $('#users').removeClass('invisible')
-        $('#footer').removeClass('invisible')
-        $('#navbar').removeClass('invisible')
-        $('html').css('height', '')
-        $('html').css('width', '')
-        $('html').css('overflow', '')
-        $('body').css('height', '')
-        $('body').css('width', '')
-        $('body').css('overflow', '')
-        $('#main').css('padding-top', '')
-        redrawWhiteboard()
+  'click .exitFullscreenButton': (event, template) ->
+    if document.exitFullscreen
+      document.exitFullscreen()
+    else if document.mozCancelFullScreen
+      document.mozCancelFullScreen()
+    else if document.webkitExitFullscreen
+      document.webkitExitFullscreen()
diff --git a/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.html b/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.html
index 330aa39dc6f2777067934b2393803c9ea481b781..8acdbb59b248d0180ec089107b0e57ff5e2e775e 100755
--- a/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.html
+++ b/bigbluebutton-html5/app/client/views/whiteboard/whiteboard.html
@@ -6,6 +6,9 @@
     <div id="whiteboard-container" class="{{whiteboardSize}}">
       <div id="whiteboard-paper">
       </div>
+      {{#if isMobile}}
+        {{> makeButton btn_class="fullscreenButton whiteboardFullscreenButton" i_class="ion-arrow-expand"}}
+      {{/if}}
     </div>
     {{#if isCurrentUserPresenter}}
       <div id="controllers">