diff --git a/src/core/nginx.c b/src/core/nginx.c
index c75ee4f..feb861a 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -139,7 +139,7 @@
       0,
       NULL },
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 
     { ngx_string("worker_threads"),
       NGX_MAIN_CONF|NGX_DIRECT_CONF|NGX_CONF_TAKE1,
@@ -959,7 +959,7 @@
     ccf->user = (ngx_uid_t) NGX_CONF_UNSET_UINT;
     ccf->group = (ngx_gid_t) NGX_CONF_UNSET_UINT;
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
     ccf->worker_threads = NGX_CONF_UNSET;
     ccf->thread_stack_size = NGX_CONF_UNSET_SIZE;
 #endif
@@ -1000,7 +1000,7 @@
 
 #endif
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 
     ngx_conf_init_value(ccf->worker_threads, 0);
     ngx_threads_n = ccf->worker_threads;
diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c
index d6c0bda..896b775 100644
--- a/src/core/ngx_connection.c
+++ b/src/core/ngx_connection.c
@@ -943,7 +943,7 @@
         }
     }
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 
     /*
      * we have to clean the connection information before the closing
diff --git a/src/core/ngx_connection.h b/src/core/ngx_connection.h
index 143cab7..207aea4 100644
--- a/src/core/ngx_connection.h
+++ b/src/core/ngx_connection.h
@@ -184,7 +184,7 @@
     unsigned            busy_count:2;
 #endif
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
     ngx_atomic_t        lock;
 #endif
 };
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
index d69783f..11e413f 100644
--- a/src/core/ngx_cycle.c
+++ b/src/core/ngx_cycle.c
@@ -26,7 +26,7 @@
 ngx_uint_t             ngx_test_config;
 ngx_uint_t             ngx_quiet_mode;
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 ngx_tls_key_t          ngx_core_tls_key;
 #endif
 
diff --git a/src/core/ngx_cycle.h b/src/core/ngx_cycle.h
index 21bf5ca..be90a72 100644
--- a/src/core/ngx_cycle.h
+++ b/src/core/ngx_cycle.h
@@ -103,7 +103,7 @@
      ngx_array_t              env;
      char                   **environment;
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
      ngx_int_t                worker_threads;
      size_t                   thread_stack_size;
 #endif
@@ -111,10 +111,14 @@
 } ngx_core_conf_t;
 
 
+#if (NGX_OLD_THREADS)
+
 typedef struct {
      ngx_pool_t              *pool;   /* pcre's malloc() pool */
 } ngx_core_tls_t;
 
+#endif
+
 
 #define ngx_is_init_cycle(cycle)  (cycle->conf_ctx == NULL)
 
@@ -136,7 +140,7 @@
 extern ngx_module_t           ngx_core_module;
 extern ngx_uint_t             ngx_test_config;
 extern ngx_uint_t             ngx_quiet_mode;
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 extern ngx_tls_key_t          ngx_core_tls_key;
 #endif
 
diff --git a/src/core/ngx_regex.c b/src/core/ngx_regex.c
index 30acca5..77c5947 100644
--- a/src/core/ngx_regex.c
+++ b/src/core/ngx_regex.c
@@ -80,7 +80,7 @@
 static ngx_inline void
 ngx_regex_malloc_init(ngx_pool_t *pool)
 {
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
     ngx_core_tls_t  *tls;
 
     if (ngx_threaded) {
@@ -98,7 +98,7 @@
 static ngx_inline void
 ngx_regex_malloc_done(void)
 {
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
     ngx_core_tls_t  *tls;
 
     if (ngx_threaded) {
@@ -253,7 +253,7 @@
 ngx_regex_malloc(size_t size)
 {
     ngx_pool_t      *pool;
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
     ngx_core_tls_t  *tls;
 
     if (ngx_threaded) {
diff --git a/src/core/ngx_spinlock.c b/src/core/ngx_spinlock.c
index 9c93afa..33477e2 100644
--- a/src/core/ngx_spinlock.c
+++ b/src/core/ngx_spinlock.c
@@ -42,7 +42,7 @@
 
 #else
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 
 #error ngx_spinlock() or ngx_atomic_cmp_set() are not defined !
 
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index 9e7a1bd..17214c5 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -48,7 +48,7 @@
 static struct kevent  *event_list;
 static ngx_uint_t      max_changes, nchanges, nevents;
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 static ngx_mutex_t    *list_mutex;
 static ngx_mutex_t    *kevent_mutex;
 #endif
@@ -133,7 +133,7 @@
             return NGX_ERROR;
         }
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 
         list_mutex = ngx_mutex_init(cycle->log, 0);
         if (list_mutex == NULL) {
@@ -257,7 +257,7 @@
 
     ngx_kqueue = -1;
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
     ngx_mutex_destroy(kevent_mutex);
     ngx_mutex_destroy(list_mutex);
 #endif
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index bad1a7d..3617afb 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -413,7 +413,7 @@
         return NGX_CONF_OK;
     }
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 
     ngx_log_error(NGX_LOG_EMERG, cycle->log, 0,
                   "poll() is not supported in the threaded mode");
diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c
index fa2d55a..e837444 100644
--- a/src/event/modules/ngx_select_module.c
+++ b/src/event/modules/ngx_select_module.c
@@ -419,7 +419,7 @@
         return NGX_CONF_ERROR;
     }
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 
     ngx_log_error(NGX_LOG_EMERG, cycle->log, 0,
                   "select() is not supported in the threaded mode");
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
index 26c3b97..885528a 100644
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -212,7 +212,7 @@
         timer = ngx_event_find_timer();
         flags = NGX_UPDATE_TIME;
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 
         if (timer == NGX_TIMER_INFINITE || timer > 500) {
             timer = 500;
@@ -722,7 +722,7 @@
 
         next = &c[i];
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
         c[i].lock = 0;
 #endif
     } while (i);
diff --git a/src/event/ngx_event_busy_lock.h b/src/event/ngx_event_busy_lock.h
index 254c233..a7e556c 100644
--- a/src/event/ngx_event_busy_lock.h
+++ b/src/event/ngx_event_busy_lock.h
@@ -46,7 +46,7 @@
     ngx_event_busy_lock_ctx_t  *events;
     ngx_event_busy_lock_ctx_t  *last;
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
     ngx_mutex_t                *mutex;
 #endif
 } ngx_event_busy_lock_t;
diff --git a/src/event/ngx_event_connect.h b/src/event/ngx_event_connect.h
index e738258..ab35836 100644
--- a/src/event/ngx_event_connect.h
+++ b/src/event/ngx_event_connect.h
@@ -53,7 +53,7 @@
     ngx_event_save_peer_session_pt   save_session;
 #endif
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
     ngx_atomic_t                    *lock;
 #endif
 
diff --git a/src/event/ngx_event_mutex.c b/src/event/ngx_event_mutex.c
index 98efbb0..66befe3 100644
--- a/src/event/ngx_event_mutex.c
+++ b/src/event/ngx_event_mutex.c
@@ -28,7 +28,7 @@
         m->last = ev;
         ev->next = NULL;
 
-#if (NGX_THREADS0)
+#if (NGX_OLD_THREADS0)
         ev->light = 1;
 #endif
 
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
index 7019781..fcff4a4 100644
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -446,7 +446,7 @@
 
     u->peer.log = r->connection->log;
     u->peer.log_error = NGX_ERROR_ERR;
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
     u->peer.lock = &r->connection->lock;
 #endif
 
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
index 51cf725..83d65dd 100644
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -23,7 +23,7 @@
 static void ngx_worker_process_init(ngx_cycle_t *cycle, ngx_int_t worker);
 static void ngx_worker_process_exit(ngx_cycle_t *cycle);
 static void ngx_channel_handler(ngx_event_t *ev);
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 static void ngx_wakeup_worker_threads(ngx_cycle_t *cycle);
 static ngx_thread_value_t ngx_worker_thread_cycle(void *data);
 #endif
@@ -56,7 +56,7 @@
 ngx_uint_t    ngx_restart;
 
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 volatile ngx_thread_t  ngx_threads[NGX_MAX_THREADS];
 ngx_int_t              ngx_threads_n;
 #endif
@@ -747,7 +747,7 @@
 
     ngx_setproctitle("worker process");
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
     {
     ngx_int_t         n;
     ngx_err_t         err;
@@ -1032,7 +1032,7 @@
     ngx_uint_t         i;
     ngx_connection_t  *c;
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
     ngx_terminate = 1;
 
     ngx_wakeup_worker_threads(cycle);
@@ -1181,7 +1181,7 @@
 }
 
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 
 static void
 ngx_wakeup_worker_threads(ngx_cycle_t *cycle)
diff --git a/src/os/unix/ngx_thread.h b/src/os/unix/ngx_thread.h
index 49c5d56..2077b3d 100644
--- a/src/os/unix/ngx_thread.h
+++ b/src/os/unix/ngx_thread.h
@@ -12,7 +12,7 @@
 #include <ngx_config.h>
 #include <ngx_core.h>
 
-#if (NGX_THREADS)
+#if (NGX_OLD_THREADS)
 
 #define NGX_MAX_THREADS      128
 
@@ -107,7 +107,7 @@
 ngx_int_t ngx_cond_signal(ngx_cond_t *cv);
 
 
-#else /* !NGX_THREADS */
+#else /* !NGX_OLD_THREADS */
 
 #define ngx_thread_volatile
 
diff --git a/src/os/unix/ngx_user.c b/src/os/unix/ngx_user.c
index 3491f1c..4ac969f 100644
--- a/src/os/unix/ngx_user.c
+++ b/src/os/unix/ngx_user.c
@@ -64,7 +64,7 @@
     size_t      len;
     ngx_err_t   err;
 
-#if (NGX_THREADS && NGX_NONREENTRANT_CRYPT)
+#if (NGX_OLD_THREADS && NGX_NONREENTRANT_CRYPT)
 
     /* crypt() is a time consuming function, so we only try to lock */
 
@@ -81,14 +81,14 @@
 
         *encrypted = ngx_pnalloc(pool, len);
         if (*encrypted == NULL) {
-#if (NGX_THREADS && NGX_NONREENTRANT_CRYPT)
+#if (NGX_OLD_THREADS && NGX_NONREENTRANT_CRYPT)
             ngx_mutex_unlock(ngx_crypt_mutex);
 #endif
             return NGX_ERROR;
         }
 
         ngx_memcpy(*encrypted, value, len);
-#if (NGX_THREADS && NGX_NONREENTRANT_CRYPT)
+#if (NGX_OLD_THREADS && NGX_NONREENTRANT_CRYPT)
         ngx_mutex_unlock(ngx_crypt_mutex);
 #endif
         return NGX_OK;
@@ -96,7 +96,7 @@
 
     err = ngx_errno;
 
-#if (NGX_THREADS && NGX_NONREENTRANT_CRYPT)
+#if (NGX_OLD_THREADS && NGX_NONREENTRANT_CRYPT)
     ngx_mutex_unlock(ngx_crypt_mutex);
 #endif
 
diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h
index 098ca24..f4b2eea 100644
--- a/src/os/win32/ngx_win32_config.h
+++ b/src/os/win32/ngx_win32_config.h
@@ -218,7 +218,7 @@
 #define NGX_HAVE_LITTLE_ENDIAN  1
 #define NGX_HAVE_NONALIGNED     1
 
-#define NGX_THREADS       1
+#define NGX_OLD_THREADS         1
 
 
 #define NGX_WIN_NT        200000
