diff --git a/css/reveal.css b/css/reveal.css
index 54106e5fa9fbc10dbf0cf23d62fc4f1a7d65c308..20d140525d46f2a8f033de0efc6926cefc5ef441 100644
--- a/css/reveal.css
+++ b/css/reveal.css
@@ -248,6 +248,8 @@ body {
 	z-index: 30;
 	right: 10px;
 	bottom: 10px;
+
+	-webkit-user-select: none;
 }
 
 .reveal .controls div {
@@ -258,6 +260,7 @@ body {
 	border: 12px solid transparent;
 
 	-moz-transform: scale(.9999);
+	-webkit-tap-highlight-color: rgba( 0, 0, 0, 0 );
 
 	-webkit-transition: all 0.2s ease;
 	   -moz-transition: all 0.2s ease;
diff --git a/js/reveal.js b/js/reveal.js
index edf30731b060669f591dad44996f1b05a9dc922d..270bf63fde8574550c7640eb2dd87dc505a69f54 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -291,6 +291,8 @@
 
 		features.canvas = !!document.createElement( 'canvas' ).getContext;
 
+		features.touch = !!( 'ontouchstart' in window );
+
 		isMobileDevice = navigator.userAgent.match( /(iphone|ipod|ipad|android)/gi );
 
 	}
@@ -907,14 +909,13 @@
 			}
 		}
 
-		[ 'touchstart', 'click' ].forEach( function( eventName ) {
-			dom.controlsLeft.forEach( function( el ) { el.addEventListener( eventName, onNavigateLeftClicked, false ); } );
-			dom.controlsRight.forEach( function( el ) { el.addEventListener( eventName, onNavigateRightClicked, false ); } );
-			dom.controlsUp.forEach( function( el ) { el.addEventListener( eventName, onNavigateUpClicked, false ); } );
-			dom.controlsDown.forEach( function( el ) { el.addEventListener( eventName, onNavigateDownClicked, false ); } );
-			dom.controlsPrev.forEach( function( el ) { el.addEventListener( eventName, onNavigatePrevClicked, false ); } );
-			dom.controlsNext.forEach( function( el ) { el.addEventListener( eventName, onNavigateNextClicked, false ); } );
-		} );
+		var eventName = features.touch ? 'touchstart' : 'click';
+		dom.controlsLeft.forEach( function( el ) { el.addEventListener( eventName, onNavigateLeftClicked, false ); } );
+		dom.controlsRight.forEach( function( el ) { el.addEventListener( eventName, onNavigateRightClicked, false ); } );
+		dom.controlsUp.forEach( function( el ) { el.addEventListener( eventName, onNavigateUpClicked, false ); } );
+		dom.controlsDown.forEach( function( el ) { el.addEventListener( eventName, onNavigateDownClicked, false ); } );
+		dom.controlsPrev.forEach( function( el ) { el.addEventListener( eventName, onNavigatePrevClicked, false ); } );
+		dom.controlsNext.forEach( function( el ) { el.addEventListener( eventName, onNavigateNextClicked, false ); } );
 
 	}
 
@@ -2604,7 +2605,6 @@
 			// Vimeo embeds
 			toArray( slide.querySelectorAll( 'iframe[src*="player.vimeo.com/"]' ) ).forEach( function( el ) {
 				if( el.hasAttribute( 'data-autoplay' ) ) {
-					console.log(11);
 					el.contentWindow.postMessage( '{"method":"play"}', '*' );
 				}
 			});