diff --git a/lib/plugins/stats.js b/lib/plugins/stats.js
index <HASH>..<HASH> 100644
--- a/lib/plugins/stats.js
+++ b/lib/plugins/stats.js
@@ -61,7 +61,14 @@ module.exports = function(options){
 
       // requests
       if (options.requests) {
-        server.on('request', function(req, res){
+        // force cluster's callback first
+        if (Array.isArray(server._events.request)) {
+          server._events.request.unshift(request);
+        } else {
+          server._events.request = [request, server._events.request];
+        }
+
+        function request(req, res){
           var data = {
               remoteAddress: req.socket.remoteAddress
             , headers: req.headers
@@ -79,7 +86,7 @@ module.exports = function(options){
             res.end(str, encoding);
             master.call('reportStats', 'request complete', data);
           }
-        });
+        };
       }
     // master stats
     } else {
force cluster's request callback first

to proxy end() for sync req/res cycle'