diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
index 40eefc5..fdbd8ae 100644
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -611,7 +611,7 @@
 
         if (rn->waiting) {
 
-            if (ctx->event == NULL) {
+            if (ctx->event == NULL && ctx->timeout) {
                 ctx->event = ngx_resolver_calloc(r, sizeof(ngx_event_t));
                 if (ctx->event == NULL) {
                     return NGX_ERROR;
@@ -729,7 +729,7 @@
         goto failed;
     }
 
-    if (ctx->event == NULL) {
+    if (ctx->event == NULL && ctx->timeout) {
         ctx->event = ngx_resolver_calloc(r, sizeof(ngx_event_t));
         if (ctx->event == NULL) {
             goto failed;
@@ -872,18 +872,20 @@
 
         if (rn->waiting) {
 
-            ctx->event = ngx_resolver_calloc(r, sizeof(ngx_event_t));
-            if (ctx->event == NULL) {
-                return NGX_ERROR;
+            if (ctx->event == NULL && ctx->timeout) {
+                ctx->event = ngx_resolver_calloc(r, sizeof(ngx_event_t));
+                if (ctx->event == NULL) {
+                    return NGX_ERROR;
+                }
+
+                ctx->event->handler = ngx_resolver_timeout_handler;
+                ctx->event->data = ctx;
+                ctx->event->log = r->log;
+                ctx->ident = -1;
+
+                ngx_add_timer(ctx->event, ctx->timeout);
             }
 
-            ctx->event->handler = ngx_resolver_timeout_handler;
-            ctx->event->data = ctx;
-            ctx->event->log = r->log;
-            ctx->ident = -1;
-
-            ngx_add_timer(ctx->event, ctx->timeout);
-
             ctx->next = rn->waiting;
             rn->waiting = ctx;
             ctx->state = NGX_AGAIN;
@@ -949,18 +951,20 @@
         goto failed;
     }
 
-    ctx->event = ngx_resolver_calloc(r, sizeof(ngx_event_t));
-    if (ctx->event == NULL) {
-        goto failed;
+    if (ctx->event == NULL && ctx->timeout) {
+        ctx->event = ngx_resolver_calloc(r, sizeof(ngx_event_t));
+        if (ctx->event == NULL) {
+            goto failed;
+        }
+
+        ctx->event->handler = ngx_resolver_timeout_handler;
+        ctx->event->data = ctx;
+        ctx->event->log = r->log;
+        ctx->ident = -1;
+
+        ngx_add_timer(ctx->event, ctx->timeout);
     }
 
-    ctx->event->handler = ngx_resolver_timeout_handler;
-    ctx->event->data = ctx;
-    ctx->event->log = r->log;
-    ctx->ident = -1;
-
-    ngx_add_timer(ctx->event, ctx->timeout);
-
     if (ngx_queue_empty(resend_queue)) {
         ngx_add_timer(r->event, (ngx_msec_t) (r->resend_timeout * 1000));
     }
