diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[Wai-Routes](https://ajnsit.github.io/wai-routes) [![Hackage](https://img.shields.io/badge/hackage-v0.9.4-brightgreen.svg)](https://hackage.haskell.org/package/wai-routes) [![Hackage-Deps](https://img.shields.io/hackage-deps/v/wai-routes.svg)](http://packdeps.haskellers.com/feed?needle=wai-routes) [![Build Status](https://img.shields.io/travis/ajnsit/wai-routes.svg)](https://travis-ci.org/ajnsit/wai-routes) [![Join the chat at https://gitter.im/ajnsit/wai-routes](https://img.shields.io/badge/gitter-join%20chat%20%E2%86%A3-blue.svg)](https://gitter.im/ajnsit/wai-routes)
+[Wai-Routes](https://ajnsit.github.io/wai-routes) [![Hackage](https://img.shields.io/badge/hackage-v0.9.5-brightgreen.svg)](https://hackage.haskell.org/package/wai-routes) [![Hackage-Deps](https://img.shields.io/hackage-deps/v/wai-routes.svg)](http://packdeps.haskellers.com/feed?needle=wai-routes) [![Build Status](https://img.shields.io/travis/ajnsit/wai-routes.svg)](https://travis-ci.org/ajnsit/wai-routes) [![Join the chat at https://gitter.im/ajnsit/wai-routes](https://img.shields.io/badge/gitter-join%20chat%20%E2%86%A3-blue.svg)](https://gitter.im/ajnsit/wai-routes)
 ====================================
 
 Wai-routes is a micro web framework for Haskell that focuses on typesafe URLs.
@@ -109,6 +109,7 @@
 Changelog
 =========
 
+* 0.9.5 : Subsites now play well with hierarchical routes
 * 0.9.4 : Wai-3.2 compatibility. Added functions to manipulate wai "vault". Minor changes to internal types.
 * 0.9.3 : Added `content` and `whenContent`. Allow http-types-0.9.
 * 0.9.2 : Fix failing test in release tarball. (Only tests changed).
diff --git a/src/Network/Wai/Middleware/Routes/TH/Dispatch.hs b/src/Network/Wai/Middleware/Routes/TH/Dispatch.hs
--- a/src/Network/Wai/Middleware/Routes/TH/Dispatch.hs
+++ b/src/Network/Wai/Middleware/Routes/TH/Dispatch.hs
@@ -179,7 +179,9 @@
                             (foldl' (\a b -> a `AppE` b) (VarE (mkName getSub) `AppE` VarE sub) dyns)
                     let reqExp' = setPathInfoE `AppE` VarE restPath `AppE` reqExp
                         route' = foldl' AppE (ConE (mkName name)) dyns
-                        route = foldr AppE route' extraCons
+                        -- Subsites didn't work with hierarchical routes earlier
+                        sroute = mkName "sroute"
+                        route = LamE [VarP sroute] $ foldr AppE (AppE route' $ VarE sroute) extraCons
                         exp = subDispatcherE
                             `AppE` runHandlerE
                             `AppE` sub2
diff --git a/wai-routes.cabal b/wai-routes.cabal
--- a/wai-routes.cabal
+++ b/wai-routes.cabal
@@ -1,5 +1,5 @@
 name               : wai-routes
-version            : 0.9.4
+version            : 0.9.5
 cabal-version      : >=1.18
 build-type         : Simple
 license            : MIT
@@ -21,8 +21,8 @@
 
 source-repository this
     type     : git
-    location : http://github.com/ajnsit/wai-routes/tree/v0.9.4
-    tag      : v0.9.4
+    location : http://github.com/ajnsit/wai-routes/tree/v0.9.5
+    tag      : v0.9.5
 
 library
     build-depends      : base               >= 4.7  && < 4.9
@@ -66,6 +66,7 @@
     buildable          : True
     hs-source-dirs     : src
     default-language   : Haskell2010
+    ghc-options        : -Wall
 
 test-suite test
   main-is          : Spec.hs
@@ -83,3 +84,4 @@
                    , hspec-wai-json >= 0.6 && < 0.7
                    , text           >= 1.2 && < 1.3
                    , wai-routes
+  ghc-options        : -Wall
