             redis = @kernel.redis or undefined
             noRedis = "a kernel has no Redis client"
             assert _.isObject(redis), noRedis; redis
-        return next undefined
+        next.call this, undefined; return this

        return next() unless _.isObject config
        return next() if _.isObject kernel.redis
        {host, port, options} = config or Object()
        assert _.isString(host), "invalid Redis host"
        assert _.isNumber(port), "invalid Redis port"
        assert _.isObject(options), "invalid Redis options"
        message = "Connecting to Redis at %s:%s".toString()
        logger.info message.cyan.underline, host, port
        kernel.redis = redisio.createClient port, host, options
        assert _.isObject kernel.redis; return next undefined

    # A hook that will be called prior to instantiating the service
    # implementation. Please refer to this prototype signature for

        {host, port, options} = kernel.redis or Object()
        message = "Disconnecting from Redis at %s:%s"
        logger.info message.cyan.underline, host, port
        try @emit "redis-gone", kernel.redis, kernel
        try kernel.redis.end(); delete kernel.redis
        next.call this, undefined; return this

    # A hook that will be called prior to registering the service
    # implementation. Please refer to this prototype signature for
