diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
index eab57eb..9293803 100644
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -92,27 +92,27 @@
 /* STUB: ngx_peer_addr_t * */
 
 ngx_resolver_t *
-ngx_resolver_create(ngx_pool_t *pool, ngx_peer_addr_t *addr)
+ngx_resolver_create(ngx_conf_t *cf, ngx_peer_addr_t *addr)
 {
     ngx_resolver_t        *r;
     ngx_pool_cleanup_t    *cln;
     ngx_udp_connection_t  *uc;
 
-    cln = ngx_pool_cleanup_add(pool, 0);
+    cln = ngx_pool_cleanup_add(cf->pool, 0);
     if (cln == NULL) {
         return NULL;
     }
 
     cln->handler = ngx_resolver_cleanup;
 
-    r = ngx_calloc(sizeof(ngx_resolver_t), pool->log);
+    r = ngx_calloc(sizeof(ngx_resolver_t), cf->log);
     if (r == NULL) {
         return NULL;
     }
 
     cln->data = r;
 
-    r->event = ngx_calloc(sizeof(ngx_event_t), pool->log);
+    r->event = ngx_calloc(sizeof(ngx_event_t), cf->log);
     if (r->event == NULL) {
         return NULL;
     }
@@ -131,18 +131,18 @@
 
     r->event->handler = ngx_resolver_resend_handler;
     r->event->data = r;
-    r->event->log = pool->log;
+    r->event->log = cf->cycle->new_log;
     r->ident = -1;
 
     r->resend_timeout = 5;
     r->expire = 30;
     r->valid = 300;
 
-    r->log = pool->log;
+    r->log = cf->cycle->new_log;
     r->log_level = NGX_LOG_ALERT;
 
     if (addr) {
-        uc = ngx_calloc(sizeof(ngx_udp_connection_t), pool->log);
+        uc = ngx_calloc(sizeof(ngx_udp_connection_t), cf->log);
         if (uc == NULL) {
             return NULL;
         }
@@ -152,7 +152,7 @@
         uc->sockaddr = addr->sockaddr;
         uc->socklen = addr->socklen;
         uc->server = addr->name;
-        uc->log = pool->log;
+        uc->log = cf->log;
     }
 
     return r;
diff --git a/src/core/ngx_resolver.h b/src/core/ngx_resolver.h
index 6cf8a7f..8f8b060 100644
--- a/src/core/ngx_resolver.h
+++ b/src/core/ngx_resolver.h
@@ -131,7 +131,7 @@
 };
 
 
-ngx_resolver_t *ngx_resolver_create(ngx_pool_t *pool, ngx_peer_addr_t *addr);
+ngx_resolver_t *ngx_resolver_create(ngx_conf_t *cf, ngx_peer_addr_t *addr);
 ngx_resolver_ctx_t *ngx_resolve_start(ngx_resolver_t *r,
     ngx_resolver_ctx_t *temp);
 ngx_int_t ngx_resolve_name(ngx_resolver_ctx_t *ctx);
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index da27377..1830295 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -2910,7 +2910,7 @@
         conf->resolver = prev->resolver;
 
         if (conf->resolver == NULL) {
-            conf->resolver = ngx_resolver_create(cf->pool, NULL);
+            conf->resolver = ngx_resolver_create(cf, NULL);
             if (conf->resolver == NULL) {
                 return NGX_CONF_ERROR;
             }
@@ -3728,7 +3728,7 @@
         return NGX_CONF_ERROR;
     }
 
-    clcf->resolver = ngx_resolver_create(cf->pool, &u.addrs[0]);
+    clcf->resolver = ngx_resolver_create(cf, &u.addrs[0]);
     if (clcf->resolver == NULL) {
         return NGX_OK;
     }
diff --git a/src/mail/ngx_mail_core_module.c b/src/mail/ngx_mail_core_module.c
index 3af9fbf..15627d2 100644
--- a/src/mail/ngx_mail_core_module.c
+++ b/src/mail/ngx_mail_core_module.c
@@ -437,7 +437,7 @@
         return NGX_CONF_ERROR;
     }
 
-    cscf->resolver = ngx_resolver_create(cf->pool, &u.addrs[0]);
+    cscf->resolver = ngx_resolver_create(cf, &u.addrs[0]);
     if (cscf->resolver == NULL) {
         return NGX_CONF_OK;
     }
