diff --git a/src/core/nginx.c b/src/core/nginx.c
index 236a65b..0f37f2a 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
@@ -95,8 +95,6 @@
 
 ngx_uint_t  ngx_max_module;
 
-ngx_uint_t  ngx_use_stderr;
-
 
 int main(int argc, char *const *argv)
 {
@@ -120,7 +118,9 @@
 
     ngx_pid = ngx_getpid();
 
-    log = ngx_log_init_errlog();
+    if (!(log = ngx_log_init_errlog())) {
+        return 1;
+    }
 
 #if (NGX_OPENSSL)
     ngx_ssl_init(log);
@@ -144,10 +144,6 @@
         return 1;
     }
 
-    if (ngx_use_stderr) {
-        log = ngx_log_init_errlog();
-    }
-
     if (ngx_os_init(log) == NGX_ERROR) {
         return 1;
     }
@@ -326,10 +322,6 @@
             ngx_test_config = 1;
             break;
 
-        case 's':
-            ngx_use_stderr = 1;
-            break;
-
         case 'c':
             if (ctx->argv[i + 1] == NULL) {
                 ngx_log_error(NGX_LOG_EMERG, cycle->log, 0,
diff --git a/src/core/nginx.h b/src/core/nginx.h
index c53ad7a..66b5c33 100644
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_array.c b/src/core/ngx_array.c
index 0bc25a9..6eae76f 100644
--- a/src/core/ngx_array.c
+++ b/src/core/ngx_array.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_array.h b/src/core/ngx_array.h
index 6a2fe03..826395d 100644
--- a/src/core/ngx_array.h
+++ b/src/core/ngx_array.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_buf.c b/src/core/ngx_buf.c
index ca64783..72b558b 100644
--- a/src/core/ngx_buf.c
+++ b/src/core/ngx_buf.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_buf.h b/src/core/ngx_buf.h
index fa2a544..3e014d1 100644
--- a/src/core/ngx_buf.h
+++ b/src/core/ngx_buf.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c
index 99c5df1..6387fad 100644
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_conf_file.h b/src/core/ngx_conf_file.h
index 567c86c..fc05337 100644
--- a/src/core/ngx_conf_file.h
+++ b/src/core/ngx_conf_file.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_config.h b/src/core/ngx_config.h
index f23176d..7e3e682 100644
--- a/src/core/ngx_config.h
+++ b/src/core/ngx_config.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c
index 5b66374..698342f 100644
--- a/src/core/ngx_connection.c
+++ b/src/core/ngx_connection.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_connection.h b/src/core/ngx_connection.h
index a925084..7a03450 100644
--- a/src/core/ngx_connection.h
+++ b/src/core/ngx_connection.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_core.h b/src/core/ngx_core.h
index 671956e..909ab8e 100644
--- a/src/core/ngx_core.h
+++ b/src/core/ngx_core.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_crc.h b/src/core/ngx_crc.h
index 208001d..b78f479 100644
--- a/src/core/ngx_crc.h
+++ b/src/core/ngx_crc.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
index 86528ba..a545c61 100644
--- a/src/core/ngx_cycle.c
+++ b/src/core/ngx_cycle.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
@@ -29,7 +29,11 @@
 static ngx_connection_t  dumb;
 /* STUB */
 
+#ifdef NGX_ERROR_LOG_PATH
 static ngx_str_t  error_log = ngx_string(NGX_ERROR_LOG_PATH);
+#else
+static ngx_str_t  error_log = ngx_null_string;
+#endif
 
 
 ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle)
diff --git a/src/core/ngx_cycle.h b/src/core/ngx_cycle.h
index f1e88b1..45b7b23 100644
--- a/src/core/ngx_cycle.h
+++ b/src/core/ngx_cycle.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c
index 7ae77de..c7ee513 100644
--- a/src/core/ngx_file.c
+++ b/src/core/ngx_file.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_file.h b/src/core/ngx_file.h
index d6ca67d..9a6fe6e 100644
--- a/src/core/ngx_file.h
+++ b/src/core/ngx_file.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_garbage_collector.c b/src/core/ngx_garbage_collector.c
index ea2529a..d73ca95 100644
--- a/src/core/ngx_garbage_collector.c
+++ b/src/core/ngx_garbage_collector.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_garbage_collector.h b/src/core/ngx_garbage_collector.h
index b445944..72f9760 100644
--- a/src/core/ngx_garbage_collector.h
+++ b/src/core/ngx_garbage_collector.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_inet.c b/src/core/ngx_inet.c
index 5000ee0..bf8a788 100644
--- a/src/core/ngx_inet.c
+++ b/src/core/ngx_inet.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_inet.h b/src/core/ngx_inet.h
index 5e30c9e..d0e1f8d 100644
--- a/src/core/ngx_inet.h
+++ b/src/core/ngx_inet.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_list.c b/src/core/ngx_list.c
index 85e3b64..236eff4 100644
--- a/src/core/ngx_list.c
+++ b/src/core/ngx_list.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_list.h b/src/core/ngx_list.h
index b65eff3..046bdee 100644
--- a/src/core/ngx_list.h
+++ b/src/core/ngx_list.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_log.c b/src/core/ngx_log.c
index be899e3..07df344 100644
--- a/src/core/ngx_log.c
+++ b/src/core/ngx_log.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
@@ -112,7 +112,9 @@
     if (err) {
 
         if (len > max - 50) {
+
             /* leave a space for an error code */
+
             len = max - 50;
             errstr[len++] = '.';
             errstr[len++] = '.';
@@ -222,40 +224,6 @@
 #endif
 
 
-#if 0
-
-void ngx_log_stderr(ngx_event_t *ev)
-{
-    char       errstr[MAX_ERROR_STR];
-    ssize_t    n;
-    ngx_err_t  err;
-
-    for ( ;; ) {
-        n = read((ngx_fd_t) ev->data, errstr, sizeof(errstr - 1));
-
-        if (n == -1) {
-            err = ngx_errno;
-            if (err == NGX_EAGAIN) {
-                return;
-            }
-
-            ngx_log_error(NGX_LOG_ALERT, &ngx_log, err, "read() failed");
-            return;
-        }
-
-        if (n == 0) {
-            ngx_log_error(NGX_LOG_ALERT, &ngx_log, 0, "stderr clolsed");
-            return;
-        }
-
-        errstr[n] = '\0';
-        ngx_log_error(NGX_LOG_STDERR, &ngx_log, 0, "%s", errstr);
-    }
-}
-
-#endif
-
-
 
 ngx_log_t *ngx_log_init_errlog()
 {
@@ -287,7 +255,8 @@
     ngx_log.file = &ngx_stderr;
     ngx_log.log_level = NGX_LOG_ERR;
 
-#if 0
+#ifdef NGX_ERROR_LOG_PATH
+
     fd = ngx_open_file(NGX_ERROR_LOG_PATH, NGX_FILE_RDWR,
                        NGX_FILE_CREATE_OR_OPEN|NGX_FILE_APPEND);
 
@@ -315,6 +284,7 @@
     }
 
 #endif
+
 #endif
 
     return &ngx_log;
@@ -405,19 +375,12 @@
 
     value = cf->args->elts;
 
-    if (value[1].len == 6 && ngx_strcmp(value[1].data, "stderr") == 0) {
-        cf->cycle->new_log->file->fd = ngx_stderr.fd;
-        cf->cycle->new_log->file->name.len = 0;
-        cf->cycle->new_log->file->name.data = NULL;
+    cf->cycle->new_log->file->name = value[1];
 
-    } else {
-        cf->cycle->new_log->file->name = value[1];
-
-        if (ngx_conf_full_name(cf->cycle, &cf->cycle->new_log->file->name)
+    if (ngx_conf_full_name(cf->cycle, &cf->cycle->new_log->file->name)
                                                                   == NGX_ERROR)
-        {
-            return NGX_CONF_ERROR;
-        }
+    {
+        return NGX_CONF_ERROR;
     }
 
     return ngx_set_error_log_levels(cf, cf->cycle->new_log);
diff --git a/src/core/ngx_log.h b/src/core/ngx_log.h
index 782d28a..a3adb04 100644
--- a/src/core/ngx_log.h
+++ b/src/core/ngx_log.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_output_chain.c b/src/core/ngx_output_chain.c
index f40dfd3..f0d66cb 100644
--- a/src/core/ngx_output_chain.c
+++ b/src/core/ngx_output_chain.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_palloc.c b/src/core/ngx_palloc.c
index 47f9a86..ee4d224 100644
--- a/src/core/ngx_palloc.c
+++ b/src/core/ngx_palloc.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_palloc.h b/src/core/ngx_palloc.h
index 3a3f244..53448f4 100644
--- a/src/core/ngx_palloc.h
+++ b/src/core/ngx_palloc.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_parse.c b/src/core/ngx_parse.c
index 8edcc5a..dad9efc 100644
--- a/src/core/ngx_parse.c
+++ b/src/core/ngx_parse.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_parse.h b/src/core/ngx_parse.h
index 1423a97..44fff2e 100644
--- a/src/core/ngx_parse.h
+++ b/src/core/ngx_parse.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_radix_tree.c b/src/core/ngx_radix_tree.c
index 15949e5..c1d349e 100644
--- a/src/core/ngx_radix_tree.c
+++ b/src/core/ngx_radix_tree.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_radix_tree.h b/src/core/ngx_radix_tree.h
index 2e3319b..5398d06 100644
--- a/src/core/ngx_radix_tree.h
+++ b/src/core/ngx_radix_tree.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_rbtree.c b/src/core/ngx_rbtree.c
index f3c7ac9..c94db13 100644
--- a/src/core/ngx_rbtree.c
+++ b/src/core/ngx_rbtree.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_rbtree.h b/src/core/ngx_rbtree.h
index 47ced3e..aa69556 100644
--- a/src/core/ngx_rbtree.h
+++ b/src/core/ngx_rbtree.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_regex.c b/src/core/ngx_regex.c
index 9cae52a..27dad8d 100644
--- a/src/core/ngx_regex.c
+++ b/src/core/ngx_regex.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_regex.h b/src/core/ngx_regex.h
index 1d19686..f9bf858 100644
--- a/src/core/ngx_regex.h
+++ b/src/core/ngx_regex.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_slab.c b/src/core/ngx_slab.c
index 93d7565..7b23d3c 100644
--- a/src/core/ngx_slab.c
+++ b/src/core/ngx_slab.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_slab.h b/src/core/ngx_slab.h
index 0ae7100..f0e7da8 100644
--- a/src/core/ngx_slab.h
+++ b/src/core/ngx_slab.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_spinlock.c b/src/core/ngx_spinlock.c
index 16e6a5c..dfa7da4 100644
--- a/src/core/ngx_spinlock.c
+++ b/src/core/ngx_spinlock.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c
index 21de891..3d6a9eb 100644
--- a/src/core/ngx_string.c
+++ b/src/core/ngx_string.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_string.h b/src/core/ngx_string.h
index 4475425..fbc8875 100644
--- a/src/core/ngx_string.h
+++ b/src/core/ngx_string.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_table.h b/src/core/ngx_table.h
index 7315ea3..5e2f3a9 100644
--- a/src/core/ngx_table.h
+++ b/src/core/ngx_table.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_times.c b/src/core/ngx_times.c
index 90ceaae..2ca31ac 100644
--- a/src/core/ngx_times.c
+++ b/src/core/ngx_times.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
diff --git a/src/core/ngx_times.h b/src/core/ngx_times.h
index 5384b53..e1d1515 100644
--- a/src/core/ngx_times.h
+++ b/src/core/ngx_times.h
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
  */
 
 
