diff --git a/src/http/modules/ngx_http_index_module.c b/src/http/modules/ngx_http_index_module.c
index 01e6cd5..678664c 100644
--- a/src/http/modules/ngx_http_index_module.c
+++ b/src/http/modules/ngx_http_index_module.c
@@ -27,8 +27,8 @@
 
 static ngx_int_t ngx_http_index_test_dir(ngx_http_request_t *r,
     ngx_http_core_loc_conf_t *clcf, u_char *path, u_char *last);
-static ngx_int_t ngx_http_index_error(ngx_http_request_t *r, u_char *file,
-    ngx_err_t err);
+static ngx_int_t ngx_http_index_error(ngx_http_request_t *r,
+    ngx_http_core_loc_conf_t *clcf, u_char *file, ngx_err_t err);
 
 static ngx_int_t ngx_http_index_init(ngx_conf_t *cf);
 static void *ngx_http_index_create_loc_conf(ngx_conf_t *cf);
@@ -225,7 +225,7 @@
             }
 
             if (of.err == NGX_ENOTDIR || of.err == NGX_EACCES) {
-                return ngx_http_index_error(r, path.data, of.err);
+                return ngx_http_index_error(r, clcf, path.data, of.err);
             }
 
             if (!dir_tested) {
@@ -303,7 +303,7 @@
 
             if (of.err == NGX_ENOENT) {
                 *last = c;
-                return ngx_http_index_error(r, dir.data, NGX_ENOENT);
+                return ngx_http_index_error(r, clcf, dir.data, NGX_ENOENT);
             }
 
             if (of.err == NGX_EACCES) {
@@ -340,7 +340,8 @@
 
 
 static ngx_int_t
-ngx_http_index_error(ngx_http_request_t *r, u_char *file, ngx_err_t err)
+ngx_http_index_error(ngx_http_request_t *r, ngx_http_core_loc_conf_t  *clcf,
+    u_char *file, ngx_err_t err)
 {
     if (err == NGX_EACCES) {
         ngx_log_error(NGX_LOG_ERR, r->connection->log, err,
@@ -349,8 +350,10 @@
         return NGX_HTTP_FORBIDDEN;
     }
 
-    ngx_log_error(NGX_LOG_ERR, r->connection->log, err,
-                  "\"%s\" is not found", file);
+    if (clcf->log_not_found) {
+        ngx_log_error(NGX_LOG_ERR, r->connection->log, err,
+                      "\"%s\" is not found", file);
+    }
 
     return NGX_HTTP_NOT_FOUND;
 }
