diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,10 +1,17 @@
+## 1.4.15
+
+* mkYesod avoids using reify when it isn't necessary. This avoids needing to define the site type below the call to mkYesod.
+
 ## 1.4.14
 
 * Add CSRF protection functions and middleware based on HTTP cookies and headers [#1017](https://github.com/yesodweb/yesod/pull/1017)
+* Add mkYesodWith, which allows creating sites with polymorphic type parameters [#1055](https://github.com/yesodweb/yesod/pull/1055)
+* Do not define the site type below a call to mkYesod (or any variant), as it will be required at splicing time for reification.
+  This was allowed before because reification was not in use. Reification was introduced to allow parametrized types to be used
+  by mkYesod (and variants), with potentially polymorphic variables.
 
 ## 1.4.13
 
-* Add mkYesodGeneral, which allows creating sites with polymorphic type parameters [#1055](https://github.com/yesodweb/yesod/pull/1055)
 * Add getsYesod function [#1042](https://github.com/yesodweb/yesod/pull/1042)
 * Add IsString instance for WidgetT site m () [#1038](https://github.com/yesodweb/yesod/pull/1038)
 
diff --git a/Yesod/Core/Internal/TH.hs b/Yesod/Core/Internal/TH.hs
--- a/Yesod/Core/Internal/TH.hs
+++ b/Yesod/Core/Internal/TH.hs
@@ -9,7 +9,7 @@
 import Prelude hiding (exp)
 import Yesod.Core.Handler
 
-import Language.Haskell.TH
+import Language.Haskell.TH hiding (cxt)
 import Language.Haskell.TH.Syntax
 
 import qualified Network.Wai as W
@@ -76,17 +76,22 @@
                -> Bool                     -- ^ is this a subsite
                -> [ResourceTree String]
                -> Q([Dec],[Dec])
-mkYesodGeneral name args isSub resS = do
-    info <- reify $ mkName name
-    let arity =
-          case info of
-            TyConI dec ->
-              case dec of
-                DataD _ _ vs _ _ -> length vs
-                NewtypeD _ _ vs _ _ -> length vs
-                _ -> 0
-            _ -> 0
-        (mtys,ptys) = partitionEithers args
+mkYesodGeneral namestr args isSub resS = do
+    mname <- lookupTypeName namestr
+    arity <- case mname of
+               Just name -> do
+                 info <- reify name
+                 return $
+                   case info of
+                     TyConI dec ->
+                       case dec of
+                         DataD _ _ vs _ _ -> length vs
+                         NewtypeD _ _ vs _ _ -> length vs
+                         _ -> 0
+                     _ -> 0
+               _ -> return 0
+    let name = mkName namestr
+        (mtys,_) = partitionEithers args
     -- Generate as many variable names as the arity indicates
     vns <- replicateM (arity - length mtys) $ newName "t"
         -- Base type (site type with variables)
@@ -103,13 +108,13 @@
 #endif
                                           ) ts ++ cs )
                  ) ([],vns,[]) args
-        site = foldl' AppT (ConT $ mkName name) argtypes
+        site = foldl' AppT (ConT name) argtypes
         res = map (fmap parseType) resS
     renderRouteDec <- mkRenderRouteInstance site res
     routeAttrsDec  <- mkRouteAttrsInstance site res
     dispatchDec    <- mkDispatchInstance site cxt res
     parse <- mkParseRouteInstance site res
-    let rname = mkName $ "resources" ++ name
+    let rname = mkName $ "resources" ++ namestr
     eres <- lift resS
     let resourcesDec =
             [ SigD rname $ ListT `AppT` (ConT ''ResourceTree `AppT` ConT ''String)
diff --git a/test/YesodCoreTest/RawResponse.hs b/test/YesodCoreTest/RawResponse.hs
--- a/test/YesodCoreTest/RawResponse.hs
+++ b/test/YesodCoreTest/RawResponse.hs
@@ -24,13 +24,13 @@
 import Network.HTTP.Types (status200)
 import Blaze.ByteString.Builder (fromByteString)
 
-data App = App
-
 mkYesod "App" [parseRoutes|
 / HomeR GET
 /wai-stream WaiStreamR GET
 /wai-app-stream WaiAppStreamR GET
 |]
+
+data App = App
 
 instance Yesod App
 
diff --git a/yesod-core.cabal b/yesod-core.cabal
--- a/yesod-core.cabal
+++ b/yesod-core.cabal
@@ -1,5 +1,5 @@
 name:            yesod-core
-version:         1.4.14
+version:         1.4.15
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
