diff --git a/auto/cc b/auto/cc
index bb2a3bf..0fb9632 100644
--- a/auto/cc
+++ b/auto/cc
@@ -2,6 +2,7 @@
 case $CC in
 
     *gcc)
+         # gcc 2.95.4, 3.3.2
 
          # optimization
          #CFLAGS="$CFLAGS -O2 -fomit-frame-pointer"
@@ -31,6 +32,7 @@
          have=HAVE_GCC_VARIADIC_MACROS . auto/have
 
          OBJEXT=o
+         COMPILEONLY="-c "
          OBJOUT="-o "
          BINOUT="-o "
 
@@ -57,6 +59,7 @@
          have=HAVE_C99_VARIADIC_MACROS . auto/have
 
          OBJEXT=o
+         COMPILEONLY="-c "
          OBJOUT="-o "
          BINOUT="-o "
 
@@ -113,6 +116,7 @@
          CORE_LINK="$CORE_LINK -debug -debugtype:coff"
 
          OBJEXT=obj
+         COMPILEONLY="-c "
          OBJOUT="-Fo"
          BINOUT="-Fe"
 
@@ -122,6 +126,52 @@
 
     wcc386)
          # Open Watcom 1.0
+
+         # optimization
+
+         # maximize speed
+         CFLAGS="$CFLAGS -ot"
+         # reorder instructions for best pipeline usage
+         CFLAGS="$CFLAGS -op"
+         # inline intrinsic functions
+         CFLAGS="$CFLAGS -oi"
+         # inline expansion
+         CFLAGS="$CFLAGS -oe"
+         # disable stack checking calls
+         CFLAGS="$CFLAGS -s"
+         # optimize for Pentium Pro
+         #CFLAGS="$CFLAGS -6r"
+         CFLAGS="$CFLAGS -6s"
+
+         # warnings
+         #CFLAGS="$CFLAGS -w3"
+         CFLAGS="$CFLAGS -wx"
+
+         # stop on warning
+         #CFLAGS="$CFLAGS -we"
+
+         # built target is NT
+         CFLAGS="$CFLAGS -bt=nt"
+
+         # multithreaded
+         CFLAGS="$CFLAGS -bm"
+
+         # debug
+         CFLAGS="$CFLAGS -d2"
+
+         # quiet
+         CFLAGS="$CFLAGS -zq"
+
+         # link traget is NT
+         CORE_LINK="$CORE_LINK -l=nt"
+
+         OBJEXT=obj
+         COMPILEONLY=
+         OBJOUT="-fo"
+         BINOUT="-fo"
+         INC_EQ=YES
+         MAKE_BS=YES
+         MAKE_SL=YES
     ;;
 
 esac
diff --git a/auto/init b/auto/init
index 8bd4b8b..03e8a2b 100644
--- a/auto/init
+++ b/auto/init
@@ -10,6 +10,12 @@
 CC_WARN=$CC
 
 
+INC_EQ=NO
+MAKE_BS=NO
+MAKE_SL=NO
+MAKE_BL=YES
+
+
 # checking echo's "-n" option and "\c" capabilties
 
 if echo "test\c" | grep c >/dev/null; then
diff --git a/auto/make b/auto/make
index 31c414c..e4e1a26 100644
--- a/auto/make
+++ b/auto/make
@@ -4,155 +4,261 @@
          $OBJS/src/http $OBJS/src/http/modules $OBJS/src/http/modules/proxy
 
 
-modules="$CORE_MODULES $EVENT_MODULES $HTTP_MODULES \
-         $HTTP_FILTER_MODULES $HTTP_NOT_MODIFIED_FILTER_MODULE"
+echo "CC = $CC"                                                   > $MAKEFILE
+echo "CFLAGS = $CFLAGS"                                           >> $MAKEFILE
+echo                                                              >> $MAKEFILE
 
 
-echo "#include <ngx_config.h>"                > $NGX_MODULES_C
-echo "#include <ngx_core.h>"                  >> $NGX_MODULES_C
-echo                                          >> $NGX_MODULES_C
+# CORE_DEPS
 
-for mod in $modules
-do
-    echo "extern ngx_module_t  $mod;"         >> $NGX_MODULES_C
-done
+if [ $MAKE_SL = YES ]; then
+    echo $ngx_n "CORE_DEPS =" $ngx_c                              >> $MAKEFILE
+else
+    echo "CORE_DEPS = \\"                                         >> $MAKEFILE
+fi
 
-echo                                          >> $NGX_MODULES_C
-echo 'ngx_module_t *ngx_modules[] = {'        >> $NGX_MODULES_C
-
-for mod in $modules
-do
-    echo "    &$mod,"                         >> $NGX_MODULES_C
-done
-
-echo "    NULL"                               >> $NGX_MODULES_C
-echo "};"                                     >> $NGX_MODULES_C
-
-
-echo "CC = $CC"                               > $MAKEFILE
-echo "CFLAGS = $CFLAGS"                       >> $MAKEFILE
-echo                                          >> $MAKEFILE
-
-echo "CORE_DEPS = \\"                         >> $MAKEFILE
 for dep in $CORE_DEPS
 do
-    if [ $PLATFORM = win32 ]; then
+    if [ $MAKE_BS = YES ]; then
         dep=`echo $dep | sed -e "s/\//\\\\\\/g"`
     fi
-    echo "	$dep \\"                      >> $MAKEFILE
+
+    if [ $MAKE_SL = YES ]; then
+        echo $ngx_n " $dep" $ngx_c                                >> $MAKEFILE
+    else
+        echo "	$dep \\"                                          >> $MAKEFILE
+    fi
 done
-echo                                          >> $MAKEFILE
+echo                                                              >> $MAKEFILE
+
+
+# CORE_INCS
+
+if [ $MAKE_SL = YES ]; then
+    echo                                                          >> $MAKEFILE
+fi
 
 inc="$CORE_INCS -I $OBJS"
-if [ $PLATFORM = win32 ]; then
+if [ $INC_EQ = YES ]; then
+    inc=`echo $inc | sed -e "s/-I /-i=/g"`
+fi
+
+if [ $MAKE_BS = YES ]; then
     inc=`echo $inc | sed -e "s/\//\\\\\\/g"`
 fi
-echo "CORE_INCS = $inc"                       >> $MAKEFILE
-echo                                          >> $MAKEFILE
 
-echo "HTTP_DEPS = \\"                         >> $MAKEFILE
-for inc in $HTTP_DEPS
+echo "CORE_INCS = $inc"                                           >> $MAKEFILE
+echo                                                              >> $MAKEFILE
+
+
+# HTTP_DEPS
+
+if [ $MAKE_SL = YES ]; then
+    echo $ngx_n "HTTP_DEPS =" $ngx_c                              >> $MAKEFILE
+else
+    echo "HTTP_DEPS = \\"                                         >> $MAKEFILE
+fi
+
+for dep in $HTTP_DEPS
 do
-    if [ $PLATFORM = win32 ]; then
-        inc=`echo $inc | sed -e "s/\//\\\\\\/g"`
+    if [ $MAKE_BS = YES ]; then
+        dep=`echo $dep | sed -e "s/\//\\\\\\/g"`
     fi
-    echo "	$inc \\"                      >> $MAKEFILE
-done
-echo                                          >> $MAKEFILE
 
-inc="$HTTP_INCS"
-if [ $PLATFORM = win32 ]; then
+    if [ $MAKE_SL = YES ]; then
+        echo $ngx_n " $dep" $ngx_c                                >> $MAKEFILE
+    else
+        echo "	$dep \\"                                          >> $MAKEFILE
+    fi
+done
+echo                                                              >> $MAKEFILE
+
+
+# HTTP_INCS
+
+if [ $MAKE_SL = YES ]; then
+    echo                                                          >> $MAKEFILE
+fi
+
+inc="$HTTP_INCS -I $OBJS"
+if [ $INC_EQ = YES ]; then
+    inc=`echo $inc | sed -e "s/-I /-i=/g"`
+fi
+
+if [ $MAKE_BS = YES ]; then
     inc=`echo $inc | sed -e "s/\//\\\\\\/g"`
 fi
-echo "HTTP_INCS = $inc"                       >> $MAKEFILE
-echo                                          >> $MAKEFILE
+
+echo "HTTP_INCS = $inc"                                           >> $MAKEFILE
+echo                                                              >> $MAKEFILE
 
 
+# nginx
 
-echo "nginx: \\"                              >> $MAKEFILE
+if [ $MAKE_SL = YES ]; then
+    echo $ngx_n "nginx:	" $ngx_c                                  >> $MAKEFILE
+else
+    echo "nginx: \\"                                              >> $MAKEFILE
+fi
+
+
+# nginx deps
 
 for src in $CORE_SRCS $HTTP_SRCS
 do
     obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/" -e "s/\.S\$/.$OBJEXT/"`
     obj="$OBJS/$obj"
-    if [ $PLATFORM = win32 ]; then
+
+    if [ $MAKE_BS = YES ]; then
         obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
     fi
 
-    echo "	$obj \\"                      >> $MAKEFILE
+    if [ $MAKE_SL = YES ]; then
+        echo $ngx_n " $obj" $ngx_c                                >> $MAKEFILE
+    else
+        echo "	$obj \\"                                          >> $MAKEFILE
+    fi
 done
 
 for src in $NGX_MODULES_C $LINK_DEPS
 do
     obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/"`
-    if [ $PLATFORM = win32 ]; then
+
+    if [ $MAKE_BS = YES ]; then
         obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
     fi
 
-    echo "	$obj \\"                      >> $MAKEFILE
+    if [ $MAKE_SL = YES ]; then
+        echo $ngx_n " $obj" $ngx_c                                >> $MAKEFILE
+    else
+        echo "	$obj \\"                                          >> $MAKEFILE
+    fi
 done
+echo                                                              >> $MAKEFILE
 
-echo                                          >> $MAKEFILE
-echo "	\$(CC) ${BINOUT}nginx \\"             >> $MAKEFILE
+
+# nginx build
+
+if [ $MAKE_SL = YES ]; then
+    echo $ngx_n "	\$(CC) ${BINOUT}nginx" $ngx_c             >> $MAKEFILE
+else
+    echo "	\$(CC) ${BINOUT}nginx \\"                         >> $MAKEFILE
+fi
+
+
+# nginx build sources
 
 for src in $CORE_SRCS $HTTP_SRCS
 do
     obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/" -e "s/\.S\$/.$OBJEXT/"`
     obj="$OBJS/$obj"
-    if [ $PLATFORM = win32 ]; then
+
+    if [ $MAKE_BS = YES ]; then
         obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
     fi
 
-    echo "	$obj \\"                      >> $MAKEFILE
+    if [ $MAKE_SL = YES ]; then
+        echo $ngx_n " $obj," $ngx_c                                >> $MAKEFILE
+    else
+        echo "	$obj \\"                                          >> $MAKEFILE
+    fi
 done
 
-obj=`echo $NGX_MODULES_C | sed -e "s/\.c\$/.$OBJEXT/"`
-if [ $PLATFORM = win32 ]; then
-    obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
-fi
-echo "	$obj \\"                              >> $MAKEFILE
-echo "	$CORE_LIBS \\"                        >> $MAKEFILE
-echo "	$CORE_LINK"                           >> $MAKEFILE
-echo                                          >> $MAKEFILE
 
+# nginx build ngx_modules.c and libs
+
+obj=`echo $NGX_MODULES_C | sed -e "s/\.c\$/.$OBJEXT/"`
+libs=`echo $CORE_LIBS | sed -e "s/\.c\$/.$OBJEXT/"`
+src=$NGX_MODULES_C
+if [ $MAKE_BS = YES ]; then
+    obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
+    src=`echo $src | sed -e "s/\//\\\\\\/g"`
+    libs=`echo $libs | sed -e "s/\//\\\\\\/g"`
+fi
+
+if [ $MAKE_SL = YES ]; then
+    echo " $obj $libs $CORE_LINK"                                 >> $MAKEFILE
+    echo                                                          >> $MAKEFILE
+else
+    echo "	$obj \\"                                          >> $MAKEFILE
+    echo "	$CORE_LIBS \\"                                    >> $MAKEFILE
+    echo "	$CORE_LINK"                                       >> $MAKEFILE
+    echo                                                          >> $MAKEFILE
+fi
+
+
+# ngx_modules.c
 
 deps="\$(CORE_DEPS)"
 args="\$(CFLAGS) \$(CORE_INCS)"
 
-echo "$obj: \\"                               >> $MAKEFILE
-echo "	$NGX_MODULES_C $deps"                 >> $MAKEFILE
-echo "	\$(CC) -c $args \\"                   >> $MAKEFILE
-echo "		$OBJOUT$obj \\"               >> $MAKEFILE
-echo "		$NGX_MODULES_C"               >> $MAKEFILE
-echo                                          >> $MAKEFILE
+if [ $MAKE_SL = YES ]; then
+    echo "$obj: $NGX_MODULES_C $deps"                             >> $MAKEFILE
+    echo $ngx_n "	\$(CC) $COMPILEONLY $args" $ngx_c         >> $MAKEFILE
+    echo " $OBJOUT$obj $src"                                      >> $MAKEFILE
+    echo                                                          >> $MAKEFILE
+else
+    echo "$obj: \\"                                               >> $MAKEFILE
+    echo "	$NGX_MODULES_C $deps"                             >> $MAKEFILE
+    echo "	\$(CC) $COMPILEONLY $args \\"                     >> $MAKEFILE
+    echo "		$OBJOUT$obj \\"                           >> $MAKEFILE
+    echo "		$src"                                     >> $MAKEFILE
+    echo                                                          >> $MAKEFILE
+fi
 
 
-
+# core sources
 
 for src in $CORE_SRCS
 do
     obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/" -e "s/\.S\$/.$OBJEXT/"`
+    obj="$OBJS/$obj"
 
-    echo "$OBJS/$obj: \\"                     >> $MAKEFILE
-    echo "	$src $deps"                   >> $MAKEFILE
-    echo "	\$(CC) -c $args \\"           >> $MAKEFILE
-    echo "		$OBJOUT$OBJS/$obj \\" >> $MAKEFILE
-    echo "		$src"                 >> $MAKEFILE
-    echo                                      >> $MAKEFILE
+    if [ $MAKE_BS = YES ]; then
+        obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
+        src=`echo $src | sed -e "s/\//\\\\\\/g"`
+    fi
+
+    if [ $MAKE_SL = YES ]; then
+        echo "$obj: $src $deps"                                   >> $MAKEFILE
+        echo "	\$(CC) $COMPILEONLY $args $OBJOUT$obj $src"       >> $MAKEFILE
+        echo                                                      >> $MAKEFILE
+    else
+        echo "$obj: \\"                                           >> $MAKEFILE
+        echo "	$src $deps"                                       >> $MAKEFILE
+        echo "	\$(CC) $COMPILEONLY $args \\"                     >> $MAKEFILE
+        echo "		$OBJOUT$obj \\"                           >> $MAKEFILE
+        echo "		$src"                                     >> $MAKEFILE
+        echo                                                      >> $MAKEFILE
+    fi
 done
 
 
+# http sources
+
 deps="\$(CORE_DEPS) \$(HTTP_DEPS)"
 args="\$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)"
 
 for src in $HTTP_SRCS
 do
     obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/"`
+    obj="$OBJS/$obj"
 
-    echo "$OBJS/$obj: \\"                     >> $MAKEFILE
-    echo "	$src $deps"                   >> $MAKEFILE
-    echo "	\$(CC) -c $args \\"           >> $MAKEFILE
-    echo "		$OBJOUT$OBJS/$obj \\" >> $MAKEFILE
-    echo "		$src"                 >> $MAKEFILE
-    echo                                      >> $MAKEFILE
+    if [ $MAKE_BS = YES ]; then
+        obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
+        src=`echo $src | sed -e "s/\//\\\\\\/g"`
+    fi
+
+    if [ $MAKE_SL = YES ]; then
+        echo "$obj: $src $deps"                                   >> $MAKEFILE
+        echo "	\$(CC) $COMPILEONLY $args $OBJOUT$obj $src"       >> $MAKEFILE
+        echo                                                      >> $MAKEFILE
+    else
+        echo "$obj: \\"                                           >> $MAKEFILE
+        echo "	$src $deps"                                       >> $MAKEFILE
+        echo "	\$(CC) $COMPILEONLY $args \\"                     >> $MAKEFILE
+        echo "		$OBJOUT$obj \\"                           >> $MAKEFILE
+        echo "		$src"                                     >> $MAKEFILE
+        echo                                                      >> $MAKEFILE
+    fi
 done
diff --git a/auto/modules b/auto/modules
index 1af9496..ccd4d9a 100644
--- a/auto/modules
+++ b/auto/modules
@@ -78,3 +78,28 @@
     HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
     HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS"
 fi
+
+
+modules="$CORE_MODULES $EVENT_MODULES $HTTP_MODULES \
+         $HTTP_FILTER_MODULES $HTTP_NOT_MODIFIED_FILTER_MODULE"
+
+
+echo "#include <ngx_config.h>"                > $NGX_MODULES_C
+echo "#include <ngx_core.h>"                  >> $NGX_MODULES_C
+echo                                          >> $NGX_MODULES_C
+
+for mod in $modules
+do
+    echo "extern ngx_module_t  $mod;"         >> $NGX_MODULES_C
+done
+
+echo                                          >> $NGX_MODULES_C
+echo 'ngx_module_t *ngx_modules[] = {'        >> $NGX_MODULES_C
+
+for mod in $modules
+do
+    echo "    &$mod,"                         >> $NGX_MODULES_C
+done
+
+echo "    NULL"                               >> $NGX_MODULES_C
+echo "};"                                     >> $NGX_MODULES_C
diff --git a/src/event/modules/ngx_iocp_module.c b/src/event/modules/ngx_iocp_module.c
index 0adc0c7..e0a042c 100644
--- a/src/event/modules/ngx_iocp_module.c
+++ b/src/event/modules/ngx_iocp_module.c
@@ -164,7 +164,7 @@
 {
     int                rc;
     u_int              key;
-    size_t             bytes;
+    u_long             bytes;
     ngx_err_t          err;
     ngx_msec_t         timer;
     ngx_event_t       *ev;
diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h
index 71fa5d4..8ca468e 100644
--- a/src/event/ngx_event.h
+++ b/src/event/ngx_event.h
@@ -122,11 +122,13 @@
      *   write:      available space in buffer when event is ready
      *               or lowat when event is set with NGX_LOWAT_EVENT flag
      *
+     * iocp: TODO
+     *
      * otherwise:
      *   accept:     1 if accept many, 0 otherwise
      */
 
-#if (HAVE_KQUEUE)
+#if (HAVE_KQUEUE) || (HAVE_IOCP)
     int              available;
 #else
     unsigned short   available:1;
diff --git a/src/event/ngx_event_acceptex.c b/src/event/ngx_event_acceptex.c
index 164db0e..7923a02 100644
--- a/src/event/ngx_event_acceptex.c
+++ b/src/event/ngx_event_acceptex.c
@@ -58,8 +58,8 @@
 
 int ngx_event_post_acceptex(ngx_listening_t *ls, int n)
 {
-    int                i;
-    u_int              rcvd;
+    u_long             rcvd;
+    ngx_int_t          i;
     ngx_err_t          err;
     ngx_event_t       *rev, *wev;
     ngx_socket_t       s;
diff --git a/src/http/ngx_http_log_handler.c b/src/http/ngx_http_log_handler.c
index 8b4c763..b34bd1b 100644
--- a/src/http/ngx_http_log_handler.c
+++ b/src/http/ngx_http_log_handler.c
@@ -129,7 +129,7 @@
     ngx_http_log_op_t        *op;
     ngx_http_log_loc_conf_t  *lcf;
 #if (WIN32)
-    u_int                     written;
+    u_long                    written;
 #endif
 
     ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c
index 3906ddc..df0d865 100644
--- a/src/os/win32/ngx_files.c
+++ b/src/os/win32/ngx_files.c
@@ -5,8 +5,8 @@
 
 ssize_t ngx_read_file(ngx_file_t *file, char *buf, size_t size, off_t offset)
 {
-    size_t      n;
     long        high_offset;
+    DWORD       n;
     ngx_err_t   err;
     OVERLAPPED  ovlp, *povlp;
 
@@ -67,8 +67,8 @@
 
 ssize_t ngx_write_file(ngx_file_t *file, char *buf, size_t size, off_t offset)
 {
-    size_t      n;
     long        high_offset;
+    DWORD       n;
     ngx_err_t   err;
     OVERLAPPED  ovlp, *povlp;
 
diff --git a/src/os/win32/ngx_process.c b/src/os/win32/ngx_process.c
index e3a2786..6d78c1c 100644
--- a/src/os/win32/ngx_process.c
+++ b/src/os/win32/ngx_process.c
@@ -3,7 +3,7 @@
 #include <ngx_core.h>
 
 
-ngx_pid_t ngx_exec(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx)
+ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx)
 {
     return /* STUB */ 0;
 }
diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h
index 2af600d..b1d7d57 100644
--- a/src/os/win32/ngx_win32_config.h
+++ b/src/os/win32/ngx_win32_config.h
@@ -7,6 +7,10 @@
 #define STRICT
 #define WIN32_LEAN_AND_MEAN
 
+#ifdef __WATCOMC__
+#pragma disable_message(107)
+#endif
+
 /*
  * we need to include windows.h explicity before winsock2.h because
  * warning 4201 is enabled in windows.h
@@ -34,6 +38,17 @@
 #pragma warning(disable:4127)
 #endif
 
+
+#ifdef __WATCOMC__
+#pragma enable_message(107)
+#if 0
+/* Symbol 'ngx_rbtree_min' has been defined, but not referenced */
+#pragma disable_message(202)
+#endif
+/* No prototype found for 'stricmp' */
+#pragma disable_message(301)
+#endif
+
 #include <ngx_auto_config.h>
 
 
diff --git a/src/os/win32/ngx_wsarecv.c b/src/os/win32/ngx_wsarecv.c
index 96fa0ff..2de1110 100644
--- a/src/os/win32/ngx_wsarecv.c
+++ b/src/os/win32/ngx_wsarecv.c
@@ -7,8 +7,7 @@
 ssize_t ngx_wsarecv(ngx_connection_t *c, char *buf, size_t size)
 {
     int           rc;
-    u_int         flags;
-    size_t        bytes;
+    u_long        bytes, flags;
     WSABUF        wsabuf[1];
     ngx_err_t     err;
     ngx_event_t  *rev;
@@ -56,8 +55,7 @@
 ssize_t ngx_overlapped_wsarecv(ngx_connection_t *c, char *buf, size_t size)
 {
     int               rc;
-    u_int             flags;
-    size_t            bytes;
+    u_long            bytes, flags;
     WSABUF            wsabuf[1];
     ngx_err_t         err;
     ngx_event_t      *rev;
diff --git a/src/os/win32/ngx_wsarecv_chain.c b/src/os/win32/ngx_wsarecv_chain.c
index afdfa05..4bdc5d6 100644
--- a/src/os/win32/ngx_wsarecv_chain.c
+++ b/src/os/win32/ngx_wsarecv_chain.c
@@ -8,8 +8,8 @@
 {
     int           rc;
     char         *prev;
-    u_int         flags;
-    size_t        bytes, size;
+    u_long        bytes, flags;
+    size_t        size;
     WSABUF       *wsabuf;
     ngx_err_t     err;
     ngx_array_t   io;
diff --git a/src/os/win32/ngx_wsasend_chain.c b/src/os/win32/ngx_wsasend_chain.c
index a52296a..9d1812d 100644
--- a/src/os/win32/ngx_wsasend_chain.c
+++ b/src/os/win32/ngx_wsasend_chain.c
@@ -8,7 +8,8 @@
 {
     int           rc;
     char         *prev;
-    size_t        size, sent;
+    size_t        size;
+    u_long        sent;
     LPWSABUF      wsabuf;
     ngx_err_t     err;
     ngx_event_t  *wev;
@@ -102,7 +103,8 @@
 {
     int               rc;
     char             *prev;
-    size_t            size, sent;
+    size_t            size;
+    u_long            sent;
     LPWSABUF          wsabuf;
     ngx_err_t         err;
     ngx_event_t      *wev;
