diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
index 52559a1..be0121e 100644
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -67,9 +67,9 @@
 static void ngx_resolver_process_response(ngx_resolver_t *r, u_char *buf,
     size_t n);
 static void ngx_resolver_process_a(ngx_resolver_t *r, u_char *buf, size_t n,
-    ngx_uint_t ident, ngx_uint_t code, ngx_uint_t nan, ngx_uint_t i);
+    ngx_uint_t ident, ngx_uint_t code, ngx_uint_t nan, ngx_uint_t ans);
 static void ngx_resolver_process_ptr(ngx_resolver_t *r, u_char *buf, size_t n,
-    ngx_uint_t ident, ngx_uint_t code);
+    ngx_uint_t ident, ngx_uint_t code, ngx_uint_t nan);
 static ngx_resolver_node_t *ngx_resolver_lookup_name(ngx_resolver_t *r,
     ngx_str_t *name, uint32_t hash);
 static ngx_resolver_node_t *ngx_resolver_lookup_addr(ngx_resolver_t *r,
@@ -884,11 +884,6 @@
         goto done;
     }
 
-    if (code == 0 && nan == 0) {
-        err = "no answers in DNS response";
-        goto done;
-    }
-
     i = sizeof(ngx_resolver_query_t);
 
     while (i < (ngx_uint_t) n) {
@@ -934,13 +929,13 @@
     case NGX_RESOLVE_A:
 
         ngx_resolver_process_a(r, buf, n, ident, code, nan,
-                              i + sizeof(ngx_resolver_qs_t));
+                               i + sizeof(ngx_resolver_qs_t));
 
         break;
 
     case NGX_RESOLVE_PTR:
 
-        ngx_resolver_process_ptr(r, buf, n, ident, code);
+        ngx_resolver_process_ptr(r, buf, n, ident, code, nan);
 
         break;
 
@@ -1006,6 +1001,10 @@
         goto failed;
     }
 
+    if (code == 0 && nan == 0) {
+        code = 3; /* NXDOMAIN */
+    }
+
     if (code) {
         next = rn->waiting;
         rn->waiting = NULL;
@@ -1252,7 +1251,7 @@
 
 static void
 ngx_resolver_process_ptr(ngx_resolver_t *r, u_char *buf, size_t n,
-    ngx_uint_t ident, ngx_uint_t code)
+    ngx_uint_t ident, ngx_uint_t code, ngx_uint_t nan)
 {
     char                 *err;
     size_t                len;
@@ -1309,6 +1308,10 @@
         goto failed;
     }
 
+    if (code == 0 && nan == 0) {
+        code = 3; /* NXDOMAIN */
+    }
+
     if (code) {
         next = rn->waiting;
         rn->waiting = NULL;
