diff --git a/_test/tests/lib/exe/js_js_compress.test.php b/_test/tests/lib/exe/js_js_compress.test.php
index 49f93cc54578b2ceaa350e06fd670126bc9eb7f7..b1ae2a84f3db92ba09215aeead9d9fc31d54f05e 100644
--- a/_test/tests/lib/exe/js_js_compress.test.php
+++ b/_test/tests/lib/exe/js_js_compress.test.php
@@ -118,6 +118,32 @@ class js_js_compress_test extends DokuWikiTest {
         $this->assertEquals("var foo='this is a multiline string';",js_compress($text));
     }
 
+    function test_nocompress(){
+        $text = <<<EOF
+var meh   =    'test' ;
+
+/* BEGIN NOCOMPRESS */
+
+
+var foo   =    'test' ;
+
+var bar   =    'test' ;
+
+
+/* END NOCOMPRESS */
+
+var moh   =    'test' ;
+EOF;
+        $out = <<<EOF
+var meh='test';
+var foo   =    'test' ;
+
+var bar   =    'test' ;
+var moh='test';
+EOF;
+
+        $this->assertEquals($out, js_compress($text));
+    }
 
     /**
      * Test the files provided with the original JsStrip
diff --git a/lib/exe/js.php b/lib/exe/js.php
index f84c07709d46aece3a3d642880f92754581d106c..634e212072e7c2b395526d0db8d60fcc7792e768 100644
--- a/lib/exe/js.php
+++ b/lib/exe/js.php
@@ -102,8 +102,12 @@ function js_out(){
 
     // load files
     foreach($files as $file){
+        $ismin = (substr($file,-7) == '.min.js');
+
         echo "\n\n/* XXXXXXXXXX begin of ".str_replace(DOKU_INC, '', $file) ." XXXXXXXXXX */\n\n";
+        if($ismin) echo "\n/* BEGIN NOCOMPRESS */\n";
         js_load($file);
+        if($ismin) echo "\n/* END NOCOMPRESS */\n";
         echo "\n\n/* XXXXXXXXXX end of " . str_replace(DOKU_INC, '', $file) . " XXXXXXXXXX */\n\n";
     }
 
@@ -262,7 +266,18 @@ function js_compress($s){
         if($ch == '/' && $s{$i+1} == '*' && $s{$i+2} != '@'){
             $endC = strpos($s,'*/',$i+2);
             if($endC === false) trigger_error('Found invalid /*..*/ comment', E_USER_ERROR);
-            $i = $endC + 2;
+
+            // check if this is a NOCOMPRESS comment
+            if(substr($s, $i, $endC+2-$i) == '/* BEGIN NOCOMPRESS */'){
+                $endNC = strpos($s, '/* END NOCOMPRESS */', $endC+2);
+                if($endNC === false) trigger_error('Found invalid NOCOMPRESS comment', E_USER_ERROR);
+
+                // verbatim copy contents, trimming but putting it on its own line
+                $result .= "\n".trim(substr($s, $i + 22, $endNC - ($i + 22)))."\n"; // BEGIN comment = 22 chars
+                $i = $endNC + 20; // END comment = 20 chars
+            }else{
+                $i = $endC + 2;
+            }
             continue;
         }