diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 3.0.1
+
+* Better HEAD support [#354](https://github.com/yesodweb/wai/issues/354)
+
 ## 3.0.0.6
 
 Fix trailing slashes for `UrlMap` and other non-root setups [#325](https://github.com/yesodweb/wai/issues/325)
diff --git a/Network/Wai/Application/Static.hs b/Network/Wai/Application/Static.hs
--- a/Network/Wai/Application/Static.hs
+++ b/Network/Wai/Application/Static.hs
@@ -214,10 +214,10 @@
 
 staticAppPieces :: StaticSettings -> [Text] -> W.Application
 staticAppPieces _ _ req sendResponse
-    | W.requestMethod req /= "GET" = sendResponse $ W.responseLBS
+    | notElem (W.requestMethod req) ["GET", "HEAD"] = sendResponse $ W.responseLBS
         H.status405
         [("Content-Type", "text/plain")]
-        "Only GET is supported"
+        "Only GET or HEAD is supported"
 staticAppPieces _ [".hidden", "folder.png"] _ sendResponse = sendResponse $ W.responseLBS H.status200 [("Content-Type", "image/png")] $ L.fromChunks [$(embedFile "images/folder.png")]
 staticAppPieces _ [".hidden", "haskell.png"] _ sendResponse = sendResponse $ W.responseLBS H.status200 [("Content-Type", "image/png")] $ L.fromChunks [$(embedFile "images/haskell.png")]
 staticAppPieces ss rawPieces req sendResponse = liftIO $ do
diff --git a/WaiAppStatic/CmdLine.hs b/WaiAppStatic/CmdLine.hs
--- a/WaiAppStatic/CmdLine.hs
+++ b/WaiAppStatic/CmdLine.hs
@@ -14,7 +14,6 @@
 import Text.Printf (printf)
 import System.Directory (canonicalizePath)
 import Control.Monad (unless)
-import Network.Wai.Middleware.Autohead
 import Network.Wai.Middleware.RequestLogger (logStdout)
 import Network.Wai.Middleware.Gzip
 import qualified Data.Map as Map
@@ -100,7 +99,6 @@
     unless quiet $ printf "Serving directory %s on port %d with %s index files.\n" docroot' port (if noindex then "no" else show index)
     let middle = gzip def { gzipFiles = GzipCompress }
                . (if verbose then logStdout else id)
-               . autohead
                . (middleware args)
     runSettings defaultSettings
         { settingsPort = port
diff --git a/wai-app-static.cabal b/wai-app-static.cabal
--- a/wai-app-static.cabal
+++ b/wai-app-static.cabal
@@ -1,5 +1,5 @@
 name:            wai-app-static
-version:         3.0.0.6
+version:         3.0.1
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -53,7 +53,7 @@
                    , filepath
                    , wai-extra                 >= 3.0      && < 3.1
                    , optparse-applicative      >= 0.7
-                   , warp                      >= 3.0      && < 3.1
+                   , warp                      >= 3.0.11   && < 3.1
                    -- Used exclusively for hashFile function
                    , cryptohash-conduit
 
