diff --git a/auto/summary b/auto/summary
index 381754b..a07c78c 100644
--- a/auto/summary
+++ b/auto/summary
@@ -45,9 +45,9 @@
 if [ $HTTP_REWRITE = YES ]; then
     if [ $PCRE = NONE -o $PCRE = NO ]; then
         echo "$0: error: HTTP rewrite module requires PCRE library."
-        echo $ngx_n "You can disable the module by using" $ngx_c
+        echo $ngx_n "You can disable the module by using " $ngx_c
         echo "--without-http_rewrite_module option"
-        echo "or you have to enable PCRE support"
+        echo "or you have to enable PCRE support."
         echo
 
         exit 1
@@ -58,9 +58,9 @@
 if [ $HTTP_GZIP = YES ]; then
     if [ $ZLIB = NONE -o $ZLIB = NO ]; then
         echo "$0: error: HTTP gzip module requires zlib library."
-        echo $ngx_n "You can disable the module by using" $ngx_c
+        echo $ngx_n "You can disable the module by using " $ngx_c
         echo "--without-http_gzip_module option"
-        echo "or you have to enable zlib support"
+        echo "or you have to enable zlib support."
         echo
 
         exit 1
diff --git a/src/core/ngx_core.h b/src/core/ngx_core.h
index 909ab8e..02a4a17 100644
--- a/src/core/ngx_core.h
+++ b/src/core/ngx_core.h
@@ -58,7 +58,6 @@
 #include <ngx_regex.h>
 #endif
 #include <ngx_rbtree.h>
-#include <ngx_radix_tree.h>
 #include <ngx_times.h>
 #include <ngx_inet.h>
 #include <ngx_cycle.h>
diff --git a/src/core/ngx_log.c b/src/core/ngx_log.c
index 07df344..fd8f9d9 100644
--- a/src/core/ngx_log.c
+++ b/src/core/ngx_log.c
@@ -253,10 +253,11 @@
 #endif
 
     ngx_log.file = &ngx_stderr;
-    ngx_log.log_level = NGX_LOG_ERR;
 
 #ifdef NGX_ERROR_LOG_PATH
 
+    ngx_log.log_level = NGX_LOG_ERR;
+
     fd = ngx_open_file(NGX_ERROR_LOG_PATH, NGX_FILE_RDWR,
                        NGX_FILE_CREATE_OR_OPEN|NGX_FILE_APPEND);
 
@@ -285,6 +286,10 @@
 
 #endif
 
+#else
+
+    ngx_log.log_level = NGX_LOG_INFO;
+
 #endif
 
     return &ngx_log;
@@ -375,12 +380,19 @@
 
     value = cf->args->elts;
 
-    cf->cycle->new_log->file->name = value[1];
+    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;
 
-    if (ngx_conf_full_name(cf->cycle, &cf->cycle->new_log->file->name)
+    } else {
+        cf->cycle->new_log->file->name = value[1];
+
+        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/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
index 16fab58..8c48a7a 100644
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -82,11 +82,14 @@
         return NGX_AGAIN;
     }
 
-#if 0
     if (sslerr == SSL_ERROR_WANT_WRITE) {
+        ngx_log_error(NGX_LOG_ALERT, c->log, err,
+                      "SSL wants to write%s", handshake);
+        return NGX_ERROR;
+#if 0
         return NGX_AGAIN;
-    }
 #endif
+    }
 
     if (!SSL_is_init_finished(c->ssl->ssl)) {
         handshake = "in SSL handshake";
@@ -261,8 +264,11 @@
         return NGX_AGAIN;
     }
 
-#if 0
     if (sslerr == SSL_ERROR_WANT_READ) {
+        ngx_log_error(NGX_LOG_ALERT, c->log, err,
+                      "SSL wants to read%s", handshake);
+        return NGX_ERROR;
+#if 0
         return NGX_AGAIN;
     }
 #endif
