nginx-0.0.1-2004-01-06-19:49:34 import
diff --git a/src/os/unix/ngx_posix_init.c b/src/os/unix/ngx_posix_init.c
index d46a65d..bacd035 100644
--- a/src/os/unix/ngx_posix_init.c
+++ b/src/os/unix/ngx_posix_init.c
@@ -99,8 +99,11 @@
 void ngx_signal_handler(int signo)
 {
     struct timeval   tv;
+    ngx_err_t        err;
     ngx_signal_t    *sig;
 
+    err = ngx_errno;
+
     for (sig = signals; sig->signo != 0; sig++) {
         if (sig->signo == signo) {
             break;
@@ -141,6 +144,8 @@
         ngx_change_binary = 1;
         break;
     }
+
+    ngx_set_errno(err);
 }