diff --git a/plugin/markdown/markdown.js b/plugin/markdown/markdown.js
index 9681cf1dbd37ae47c86fca985ef0a0f58a137895..a5abc30d21ac6fa7b32e4cd3f0d0b7048095042a 100755
--- a/plugin/markdown/markdown.js
+++ b/plugin/markdown/markdown.js
@@ -6,6 +6,14 @@
         throw 'The reveal.js Markdown plugin requires marked to be loaded';
     }
 
+    if (typeof hljs !== 'undefined') {
+        marked.setOptions({
+            highlight: function (lang, code) {
+                return hljs.highlightAuto(lang, code).value;
+            }
+        });
+    }
+
     var stripLeadingWhitespace = function(section) {
 
         var template = section.querySelector( 'script' );
@@ -28,7 +36,7 @@
     };
 
     var twrap = function(el) {
-      return '<script type="text/template">' + el + '</script>';
+      return marked(el);
     };
 
     var getForwardedAttributes = function(section) {
@@ -51,7 +59,7 @@
         }
 
         return result.join( ' ' );
-    }
+    };
 
     var slidifyMarkdown = function(markdown, separator, vertical, attributes) {
 
@@ -101,12 +109,12 @@
         for( var k = 0, klen = sectionStack.length; k < klen; k++ ) {
             // horizontal
             if( typeof sectionStack[k] === 'string' ) {
-                markdownSections += '<section '+ attributes +' data-markdown>' +  twrap( sectionStack[k] )  + '</section>';
+                markdownSections += '<section '+ attributes +'>' +  twrap( sectionStack[k] )  + '</section>';
             }
             // vertical
             else {
                 markdownSections += '<section '+ attributes +'>' +
-                                        '<section data-markdown>' +  sectionStack[k].map(twrap).join('</section><section data-markdown>') + '</section>' +
+                                        '<section>' +  sectionStack[k].map(twrap).join('</section><section>') + '</section>' +
                                     '</section>';
             }
         }