diff --git a/src/core/ngx_open_file_cache.c b/src/core/ngx_open_file_cache.c
index 7e260dc..68121dc 100644
--- a/src/core/ngx_open_file_cache.c
+++ b/src/core/ngx_open_file_cache.c
@@ -189,7 +189,7 @@
             goto add_event;
         }
 
-        if ((file->event && file->use_event)
+        if (file->use_event
             || (file->event == NULL
                 && (of->uniq == 0 || of->uniq == file->uniq)
                 && now - file->created < of->valid))
@@ -256,29 +256,14 @@
                 goto add_event;
             }
 
-            if (of->uniq == file->uniq
-                && of->mtime == file->mtime
-                && of->size == file->size)
-            {
-                if (of->fd != file->fd) {
-                    if (ngx_close_file(of->fd) == NGX_FILE_ERROR) {
-                        ngx_log_error(NGX_LOG_ALERT, pool->log, ngx_errno,
-                                      ngx_close_file_n " \"%s\" failed",
-                                      name->data);
-                    }
-
-                    of->fd = file->fd;
-                }
+            if (of->uniq == file->uniq) {
 
                 file->count++;
 
                 if (file->event) {
                     file->use_event = 1;
-                    goto renew;
                 }
 
-                ngx_open_file_add_event(cache, file, of, pool->log);
-
                 goto renew;
             }
 
@@ -353,7 +338,6 @@
 
     file->uses = 1;
     file->count = 0;
-    file->use_event = 0;
     file->event = NULL;
 
 add_event:
@@ -455,17 +439,23 @@
     ngx_fd_t         fd;
     ngx_file_info_t  fi;
 
-    if (of->fd != NGX_INVALID_FILE || of->test_dir) {
+    if (of->fd != NGX_INVALID_FILE) {
 
         if (ngx_file_info(name, &fi) == -1) {
             goto failed;
         }
 
-        if (of->fd != NGX_INVALID_FILE && of->uniq == ngx_file_uniq(&fi)) {
+        if (of->uniq == ngx_file_uniq(&fi)) {
             goto done;
         }
 
-        if (of->test_dir && of->is_dir) {
+    } else if (of->test_dir) {
+
+        if (ngx_file_info(name, &fi) == -1) {
+            goto failed;
+        }
+
+        if (of->is_dir) {
             goto done;
         }
     }
@@ -543,6 +533,8 @@
         return;
     }
 
+    file->use_event = 0;
+
     file->event = ngx_calloc(sizeof(ngx_event_t), log);
     if (file->event== NULL) {
         return;
@@ -820,6 +812,7 @@
 
     /* NGX_ONESHOT_EVENT was already deleted */
     file->event = NULL;
+    file->use_event = 0;
 
     file->close = 1;
 
