diff --git a/Network/Wai/Middleware/Gzip.hs b/Network/Wai/Middleware/Gzip.hs
--- a/Network/Wai/Middleware/Gzip.hs
+++ b/Network/Wai/Middleware/Gzip.hs
@@ -39,6 +39,7 @@
 import Data.Conduit.Blaze (builderToByteStringFlush)
 import Blaze.ByteString.Builder (fromByteString)
 import Control.Exception (try, SomeException)
+import qualified Data.Set as Set
 
 data GzipSettings = GzipSettings
     { gzipFiles :: GzipFiles
@@ -52,7 +53,15 @@
     def = GzipSettings GzipIgnore defaultCheckMime
 
 defaultCheckMime :: S.ByteString -> Bool
-defaultCheckMime bs = S8.isPrefixOf "text/" bs || S8.isPrefixOf "application/json" bs
+defaultCheckMime bs =
+    S8.isPrefixOf "text/" bs || bs' `Set.member` toCompress
+  where
+    bs' = fst $ S.breakByte 59 bs -- semicolon
+    toCompress = Set.fromList
+        [ "application/json"
+        , "application/javascript"
+        , "application/ecmascript"
+        ]
 
 -- | Use gzip to compress the body of the response.
 --
diff --git a/test/WaiExtraTest.hs b/test/WaiExtraTest.hs
--- a/test/WaiExtraTest.hs
+++ b/test/WaiExtraTest.hs
@@ -63,6 +63,7 @@
     it "jsonp" caseJsonp
     it "gzip" caseGzip
     it "gzip not for MSIE" caseGzipMSIE
+    it "defaultCheckMime" caseDefaultCheckMime
     it "vhost" caseVhost
     it "autohead" caseAutohead
     it "method override" caseMethodOverride
@@ -330,6 +331,16 @@
                 }
     assertNoHeader "Content-Encoding" sres2
     assertBody "test" sres2
+
+caseDefaultCheckMime :: Assertion
+caseDefaultCheckMime = do
+    let go x y = (x, defaultCheckMime x) `shouldBe` (x, y)
+    go "application/json" True
+    go "application/javascript" True
+    go "application/something" False
+    go "text/something" True
+    go "foo/bar" False
+    go "application/json; charset=utf-8" True
 
 caseGzipMSIE :: Assertion
 caseGzipMSIE = flip runSession gzipApp $ do
diff --git a/wai-extra.cabal b/wai-extra.cabal
--- a/wai-extra.cabal
+++ b/wai-extra.cabal
@@ -1,5 +1,5 @@
 Name:                wai-extra
-Version:             1.3.3
+Version:             1.3.3.1
 Synopsis:            Provides some basic WAI handlers and middleware.
 Description:         The goal here is to provide common features without many dependencies.
 License:             MIT
@@ -43,6 +43,7 @@
                    , resourcet                 >= 0.3      && < 0.5
                    , void                      >= 0.5      && < 0.6
                    , stringsearch              >= 0.3      && < 0.4
+                   , containers
 
   Exposed-modules:   Network.Wai.Handler.CGI
                      Network.Wai.Middleware.AcceptOverride
