diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c
index 7563009..5d0cd38 100644
--- a/src/os/unix/ngx_files.c
+++ b/src/os/unix/ngx_files.c
@@ -11,7 +11,7 @@
 {
     ssize_t n;
 
-    ngx_log_debug(file->log, "read: %d, %x, %d, %qd" _
+    ngx_log_debug(file->log, "read: %d, %x, %d, " OFF_T_FMT _
                   file->fd _ buf _ size _ offset);
 
 #if (HAVE_PREAD)
diff --git a/src/os/unix/ngx_freebsd_config.h b/src/os/unix/ngx_freebsd_config.h
index 24fb7b0..f208bf1 100644
--- a/src/os/unix/ngx_freebsd_config.h
+++ b/src/os/unix/ngx_freebsd_config.h
@@ -79,4 +79,5 @@
 #define HAVE_LITTLE_ENDIAN  1
 
 
+
 #endif /* _NGX_FREEBSD_CONFIG_H_INCLUDED_ */
diff --git a/src/os/unix/ngx_freebsd_init.c b/src/os/unix/ngx_freebsd_init.c
index 3446382..c755a3e 100644
--- a/src/os/unix/ngx_freebsd_init.c
+++ b/src/os/unix/ngx_freebsd_init.c
@@ -22,7 +22,7 @@
     NULL,
 #if (HAVE_SENDFILE)
     ngx_freebsd_sendfile_chain,
-    NGX_HAVE_SENDFILE
+    NGX_IO_SENDFILE
 #else
     ngx_writev_chain,
     0
diff --git a/src/os/unix/ngx_linux.h b/src/os/unix/ngx_linux.h
index 12ccb97..0cbb677 100644
--- a/src/os/unix/ngx_linux.h
+++ b/src/os/unix/ngx_linux.h
@@ -2,7 +2,7 @@
 #define _NGX_LINUX_H_INCLUDED_
 
 
-ngx_chain_t *ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in)
+ngx_chain_t *ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in);
 
 
 #endif /* _NGX_LINUX_H_INCLUDED_ */
diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h
index 761263f..59e1b09 100644
--- a/src/os/unix/ngx_linux_config.h
+++ b/src/os/unix/ngx_linux_config.h
@@ -4,8 +4,10 @@
 
 #define _GNU_SOURCE             /* pread(), pwrite(), gethostname() */
 
+#if 0
 #define _FILE_OFFSET_BITS  64
 #define _LARGEFILE_SOURCE
+#endif
 
 
 #include <unistd.h>
@@ -24,8 +26,11 @@
 #include <sys/ioctl.h>
 #include <sys/resource.h>
 #include <sys/sysctl.h>
+#include <sys/wait.h>
 #include <sys/socket.h>
+#include <sys/sendfile.h>
 #include <netinet/in.h>
+#include <netinet/tcp.h>        /* TCP_CORK */
 #include <arpa/inet.h>
 #include <dirent.h>
 #include <netdb.h>
diff --git a/src/os/unix/ngx_linux_init.c b/src/os/unix/ngx_linux_init.c
index 86b98aa..387a491 100644
--- a/src/os/unix/ngx_linux_init.c
+++ b/src/os/unix/ngx_linux_init.c
@@ -11,8 +11,8 @@
     ngx_unix_recv,
     NULL,
     NULL,
-    ngx_writev_chain,
-    NGX_HAVE_ZEROCOPY
+    ngx_linux_sendfile_chain,
+    NGX_IO_SENDFILE
 };
 
 
diff --git a/src/os/unix/ngx_linux_sendfile_chain.c b/src/os/unix/ngx_linux_sendfile_chain.c
index 31bcf3d..0b8e417 100644
--- a/src/os/unix/ngx_linux_sendfile_chain.c
+++ b/src/os/unix/ngx_linux_sendfile_chain.c
@@ -8,7 +8,7 @@
 {
     int              rc;
     char            *prev;
-    off_t            fprev;
+    off_t            offset;
     size_t           size, fsize, sent;
     ngx_int_t        use_cork, eintr;
     struct iovec    *iov;
@@ -16,7 +16,7 @@
     ngx_hunk_t      *file;
     ngx_array_t      header;
     ngx_event_t     *wev;
-    ngx_chain_t     *cl;
+    ngx_chain_t     *cl, *tail;
 
     wev = c->write;
 
@@ -24,8 +24,6 @@
         return in;
     }
 
-    cork = 0;
-
     do {
         file = NULL;
         fsize = 0;
@@ -84,20 +82,20 @@
 
             file = cl->hunk;
             fsize = (size_t) (file->file_last - file->file_pos);
-            fprev = file->file_last;
+            offset = file->file_last;
             cl = cl->next; 
 
             /* coalesce the neighbouring file hunks */
 
             while (cl && (cl->hunk->type & NGX_HUNK_FILE)) {
                 if (file->file->fd != cl->hunk->file->fd
-                    || fprev != cl->hunk->file_pos)
+                    || offset != cl->hunk->file_pos)
                 {
                     break;
                 }
 
                 fsize += (size_t) (cl->hunk->file_last - cl->hunk->file_pos);
-                fprev = cl->hunk->file_last;
+                offset = cl->hunk->file_last;
                 cl = cl->next;
             }
         }
@@ -110,7 +108,8 @@
         tail = cl;
 
         if (fsize) {
-            rc = sendfile(c->fd, file->file->fd, file->file_pos, fsize);
+            offset = file->file_pos;
+            rc = sendfile(c->fd, file->file->fd, &offset, fsize);
 
             if (rc == -1) {
                 err = ngx_errno;
diff --git a/src/os/unix/ngx_os.h b/src/os/unix/ngx_os.h
index 658c0a4..1cc597b 100644
--- a/src/os/unix/ngx_os.h
+++ b/src/os/unix/ngx_os.h
@@ -57,4 +57,9 @@
 #endif
 
 
+#ifdef __linux__
+#include <ngx_linux.h>
+#endif
+
+
 #endif /* _NGX_OS_H_INCLUDED_ */
diff --git a/src/os/unix/ngx_solaris_config.h b/src/os/unix/ngx_solaris_config.h
index 57ef672..078d8d0 100644
--- a/src/os/unix/ngx_solaris_config.h
+++ b/src/os/unix/ngx_solaris_config.h
@@ -17,8 +17,9 @@
 #include <fcntl.h>
 #include <signal.h>
 #include <strings.h>
-
 #include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
 #include <sys/filio.h>          /* FIONBIO */
 #include <sys/stropts.h>        /* INFTIM */
 #include <sys/socket.h>
@@ -26,16 +27,7 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 #include <netdb.h>
-
-
-#if 0
-#define OFF_FMT    "%lld"
-#define SIZE_FMT   "%d"
-#define SIZEX_FMT  "%x"
-#define TIME_FMT   "%ld"
-#define PID_FMT    "%ld"
-#define RLIM_FMT   "%lu"
-#endif
+#include <dirent.h>
 
 
 #ifndef HAVE_SELECT
diff --git a/src/os/unix/ngx_solaris_init.c b/src/os/unix/ngx_solaris_init.c
index c593ed9..3b13838 100644
--- a/src/os/unix/ngx_solaris_init.c
+++ b/src/os/unix/ngx_solaris_init.c
@@ -13,7 +13,7 @@
     NULL,
     NULL,
     ngx_writev_chain,
-    NGX_HAVE_ZEROCOPY
+    0
 };
 
 
@@ -40,7 +40,7 @@
         return NGX_ERROR;
     }
 
-    ngx_log_error(NGX_LOG_INFO, log, 0, "OS: %s %s"
+    ngx_log_error(NGX_LOG_INFO, log, 0, "OS: %s %s",
                   ngx_solaris_sysname, ngx_solaris_release);
 
     ngx_log_error(NGX_LOG_INFO, log, 0, "version: %s",
