diff --git a/src/event/modules/ngx_devpoll_module.c b/src/event/modules/ngx_devpoll_module.c
index d652ac2..9bc7434 100644
--- a/src/event/modules/ngx_devpoll_module.c
+++ b/src/event/modules/ngx_devpoll_module.c
@@ -366,8 +366,14 @@
 
     nchanges = 0;
 
+    gettimeofday(&tv, NULL);
+
+    if (ngx_cached_time != tv.tv_sec) {
+        ngx_cached_time = tv.tv_sec;
+        ngx_time_update();
+    }
+
     if ((int) timer != INFTIM) {
-        gettimeofday(&tv, NULL);
         delta = tv.tv_sec * 1000 + tv.tv_usec / 1000 - delta;
 
 #if (NGX_DEBUG_EVENT)
diff --git a/src/event/modules/ngx_iocp_module.c b/src/event/modules/ngx_iocp_module.c
index 86d763b..0a5ac5b 100644
--- a/src/event/modules/ngx_iocp_module.c
+++ b/src/event/modules/ngx_iocp_module.c
@@ -189,6 +189,8 @@
         err = 0;
     }
 
+    /* TODO: timer */
+
     if (timer != INFINITE) {
         delta = ngx_msec() - delta;
         ngx_event_expire_timers(delta);
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index c896a83..831bc77 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2003 Igor Sysoev, http://sysoev.ru
+ * Copyright (C) 2002-2003 Igor Sysoev, http://sysoev.ru/en/
  */
 
 
@@ -347,16 +347,24 @@
 
     nchanges = 0;
 
+    gettimeofday(&tv, NULL);
+
+    if (ngx_cached_time != tv.tv_sec) {
+        ngx_cached_time = tv.tv_sec;
+        ngx_time_update();
+    }
+
     if (timer) {
-        gettimeofday(&tv, NULL);
         delta = tv.tv_sec * 1000 + tv.tv_usec / 1000 - delta;
 
 #if (NGX_DEBUG_EVENT)
         ngx_log_debug(log, "kevent timer: %d, delta: %d" _ timer _ delta);
 #endif
 
-        /* The expired timers must be handled before a processing of the events
-           because the new timers can be added during a processing */
+        /*
+         * The expired timers must be handled before a processing of the events
+         * because the new timers can be added during a processing
+         */
 
         ngx_event_expire_timers(delta);
 
@@ -413,8 +421,10 @@
             instance = (uintptr_t) ev & 1;
             ev = (void *) ((uintptr_t) ev & ~1);
 
-            /* It's a stale event from a file descriptor
-               that was just closed in this iteration */
+            /*
+             * it's a stale event from a file descriptor
+             * that was just closed in this iteration
+             */
 
             if (ev->active == 0 || ev->instance != instance) {
                 ngx_log_debug(log, "stale kevent");
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index 9d2f8ac..34f2b11 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -259,6 +259,8 @@
 
     ngx_log_debug(log, "poll ready %d" _ ready);
 
+    /* TODO: time */
+
     if ((int) timer != INFTIM) {
         delta = ngx_msec() - delta;
 
diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c
index 7924766..082c0e3 100644
--- a/src/event/modules/ngx_select_module.c
+++ b/src/event/modules/ngx_select_module.c
@@ -314,6 +314,8 @@
     ngx_log_debug(log, "select ready %d" _ ready);
 #endif
 
+    /* TODO: time */
+
     if (timer) {
 #if (HAVE_SELECT_CHANGE_TIMEOUT)
         delta = timer - (tv.tv_sec * 1000 + tv.tv_usec / 1000);
