diff --git a/Yesod/Helpers/Static.hs b/Yesod/Helpers/Static.hs
--- a/Yesod/Helpers/Static.hs
+++ b/Yesod/Helpers/Static.hs
@@ -53,6 +53,7 @@
 import Language.Haskell.TH
 import Language.Haskell.TH.Syntax
 
+import Data.Char
 import qualified Data.ByteString.Lazy as L
 import Data.Digest.Pure.MD5
 import qualified Data.ByteString.Base64
@@ -155,7 +156,11 @@
         | '0' <= c && c <= '9' = c
         | otherwise = '_'
     go f = do
-        let name = mkName $ intercalate "_" $ map (map replace') f
+        let adjust [] = ""
+            adjust str@(x:xs) | isDigit x = '_' : x : xs
+                              | isUpper x = toLower x : xs
+                              | otherwise = str
+        let name = mkName $ intercalate "_" $ map (adjust . map replace') f
         f' <- lift f
         let sr = ConE $ mkName "StaticRoute"
         hash <- qRunIO $ fmap base64md5 $ L.readFile $ fp ++ '/' : intercalate "/" f
diff --git a/yesod-static.cabal b/yesod-static.cabal
--- a/yesod-static.cabal
+++ b/yesod-static.cabal
@@ -1,5 +1,5 @@
 name:            yesod-static
-version:         0.0.0
+version:         0.0.0.1
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
