diff --git a/lib/template.js b/lib/template.js
index <HASH>..<HASH> 100644
--- a/lib/template.js
+++ b/lib/template.js
@@ -172,7 +172,11 @@ module.exports = (function () {
            */
 
           if (init.before) {
-            return init.before();
+            return new Promise(
+              function (resolve, reject) {
+                return init.before(resolve, reject);
+              }
+            )
           }
 
         }
@@ -253,7 +257,11 @@ module.exports = (function () {
            */
 
           if (init.beforeRender) {
-            return init.beforeRender();
+            return new Promise(
+              function (resolve, reject) {
+                return init.beforeRender(locals, resolve, reject);
+              }
+            )
           }
 
         }
@@ -293,7 +301,11 @@ module.exports = (function () {
            */
 
           if (init.after) {
-            return init.after();
+            return new Promise(
+              function (resolve, reject) {
+                return init.after(locals, resolve, reject);
+              }
+            )
           }
 
         }
Pass resolve, reject to hooks.