diff --git a/css/reveal.css b/css/reveal.css
index df406a8f74e936edb86fab86bbc9baf0f6390159..cb54d53c309404074e4a5a6dc71570ffeb8b5b88 100644
--- a/css/reveal.css
+++ b/css/reveal.css
@@ -1179,7 +1179,8 @@ body {
   -moz-box-sizing: border-box;
        box-sizing: border-box;
   text-align: left;
-  font-family: Helvetica, sans-serif; }
+  font-family: Helvetica, sans-serif;
+  -webkit-overflow-scrolling: touch; }
 
 .reveal .speaker-notes.visible:not(:empty) {
   display: block; }
diff --git a/css/reveal.scss b/css/reveal.scss
index bcc69f8fed1617906cb47d423648e018fcc1ca17..330551b4ee557379ee0cd2f35f6acfb36c4d25cb 100644
--- a/css/reveal.scss
+++ b/css/reveal.scss
@@ -1315,6 +1315,7 @@ body {
 	box-sizing: border-box;
 	text-align: left;
 	font-family: Helvetica, sans-serif;
+	-webkit-overflow-scrolling: touch;
 }
 
 .reveal .speaker-notes.visible:not(:empty) {
diff --git a/js/reveal.js b/js/reveal.js
index 29c2df090f9fd521393de5ef4ea7b9f3ec1847f0..a768d68801a35310be19e1c2da137534852b71db 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -470,6 +470,7 @@
 
 		// Element containing notes that are visible to the audience
 		dom.speakerNotes = createSingletonNode( dom.wrapper, 'div', 'speaker-notes', null );
+		dom.speakerNotes.setAttribute( 'data-prevent-swipe', '' );
 
 		// Overlay graphic which is displayed during the paused mode
 		createSingletonNode( dom.wrapper, 'div', 'pause-overlay', null );