nginx-0.0.3-2004-04-16-19:27:31 import
diff --git a/src/http/modules/ngx_http_gzip_filter.c b/src/http/modules/ngx_http_gzip_filter.c
index 2034595..8c22ac6 100644
--- a/src/http/modules/ngx_http_gzip_filter.c
+++ b/src/http/modules/ngx_http_gzip_filter.c
@@ -16,8 +16,8 @@
     ngx_uint_t           proxied;
 
     int                  level;
-    int                  wbits;
-    int                  memlevel;
+    size_t               wbits;
+    size_t               memlevel;
 } ngx_http_gzip_conf_t;
 
 
@@ -803,8 +803,9 @@
                                   NGX_HTTP_GZIP_PROXIED_OFF);
 
     ngx_conf_merge_value(conf->level, prev->level, 1);
-    ngx_conf_merge_value(conf->wbits, prev->wbits, MAX_WBITS);
-    ngx_conf_merge_value(conf->memlevel, prev->memlevel, MAX_MEM_LEVEL - 1);
+    ngx_conf_merge_size_value(conf->wbits, prev->wbits, MAX_WBITS);
+    ngx_conf_merge_size_value(conf->memlevel, prev->memlevel,
+                              MAX_MEM_LEVEL - 1);
     ngx_conf_merge_value(conf->no_buffer, prev->no_buffer, 0);
 
     return NGX_CONF_OK;
diff --git a/src/http/ngx_http_write_filter.c b/src/http/ngx_http_write_filter.c
index 5fa144f..8c1a98a 100644
--- a/src/http/ngx_http_write_filter.c
+++ b/src/http/ngx_http_write_filter.c
@@ -133,7 +133,7 @@
      * the size of the hunks is smaller than "postpone_output" directive
      */
 
-    if (!last && flush == 0 && size < conf->postpone_output) {
+    if (!last && flush == 0 && size < (off_t) conf->postpone_output) {
         return NGX_OK;
     }
 
diff --git a/src/os/unix/ngx_aio_read_chain.c b/src/os/unix/ngx_aio_read_chain.c
index 3a56e86..2858afa 100644
--- a/src/os/unix/ngx_aio_read_chain.c
+++ b/src/os/unix/ngx_aio_read_chain.c
@@ -9,7 +9,8 @@
 {
     int           n;
     u_char       *buf, *prev;
-    size_t        size, total;
+    size_t        size;
+    ssize_t       total;
     ngx_err_t     err;
 
     if (c->read->aio_eof) {