diff --git a/src/http/modules/ngx_http_headers_filter_module.c b/src/http/modules/ngx_http_headers_filter_module.c
index e5f1eb5..a4c8cc2 100644
--- a/src/http/modules/ngx_http_headers_filter_module.c
+++ b/src/http/modules/ngx_http_headers_filter_module.c
@@ -56,7 +56,7 @@
     ngx_http_headers_conf_t *conf);
 static ngx_int_t ngx_http_parse_expires(ngx_str_t *value,
     ngx_http_expires_t *expires, time_t *expires_time, char **err);
-static ngx_int_t ngx_http_add_cache_control(ngx_http_request_t *r,
+static ngx_int_t ngx_http_add_multi_header_lines(ngx_http_request_t *r,
     ngx_http_header_val_t *hv, ngx_str_t *value);
 static ngx_int_t ngx_http_add_header(ngx_http_request_t *r,
     ngx_http_header_val_t *hv, ngx_str_t *value);
@@ -77,7 +77,13 @@
 
 static ngx_http_set_header_t  ngx_http_set_headers[] = {
 
-    { ngx_string("Cache-Control"), 0, ngx_http_add_cache_control },
+    { ngx_string("Cache-Control"),
+                 offsetof(ngx_http_headers_out_t, cache_control),
+                 ngx_http_add_multi_header_lines },
+
+    { ngx_string("Link"),
+                 offsetof(ngx_http_headers_out_t, link),
+                 ngx_http_add_multi_header_lines },
 
     { ngx_string("Last-Modified"),
                  offsetof(ngx_http_headers_out_t, last_modified),
@@ -555,42 +561,40 @@
 
 
 static ngx_int_t
-ngx_http_add_cache_control(ngx_http_request_t *r, ngx_http_header_val_t *hv,
-    ngx_str_t *value)
+ngx_http_add_multi_header_lines(ngx_http_request_t *r,
+    ngx_http_header_val_t *hv, ngx_str_t *value)
 {
-    ngx_table_elt_t  *cc, **ccp;
+    ngx_array_t      *pa;
+    ngx_table_elt_t  *h, **ph;
 
     if (value->len == 0) {
         return NGX_OK;
     }
 
-    ccp = r->headers_out.cache_control.elts;
+    pa = (ngx_array_t *) ((char *) &r->headers_out + hv->offset);
 
-    if (ccp == NULL) {
-
-        if (ngx_array_init(&r->headers_out.cache_control, r->pool,
-                           1, sizeof(ngx_table_elt_t *))
-            != NGX_OK)
+    if (pa->elts == NULL) {
+        if (ngx_array_init(pa, r->pool, 1, sizeof(ngx_table_elt_t *)) != NGX_OK)
         {
             return NGX_ERROR;
         }
     }
 
-    cc = ngx_list_push(&r->headers_out.headers);
-    if (cc == NULL) {
+    h = ngx_list_push(&r->headers_out.headers);
+    if (h == NULL) {
         return NGX_ERROR;
     }
 
-    cc->hash = 1;
-    ngx_str_set(&cc->key, "Cache-Control");
-    cc->value = *value;
+    h->hash = 1;
+    h->key = hv->key;
+    h->value = *value;
 
-    ccp = ngx_array_push(&r->headers_out.cache_control);
-    if (ccp == NULL) {
+    ph = ngx_array_push(pa);
+    if (ph == NULL) {
         return NGX_ERROR;
     }
 
-    *ccp = cc;
+    *ph = h;
 
     return NGX_OK;
 }
diff --git a/src/http/ngx_http_request.h b/src/http/ngx_http_request.h
index 421004a..ead3238 100644
--- a/src/http/ngx_http_request.h
+++ b/src/http/ngx_http_request.h
@@ -279,6 +279,7 @@
     ngx_uint_t                        content_type_hash;
 
     ngx_array_t                       cache_control;
+    ngx_array_t                       link;
 
     off_t                             content_length_n;
     off_t                             content_offset;
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
index 224499b..5ddadf0 100644
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -284,6 +284,11 @@
                  ngx_http_upstream_process_vary, 0,
                  ngx_http_upstream_copy_header_line, 0, 0 },
 
+    { ngx_string("Link"),
+                 ngx_http_upstream_ignore_header_line, 0,
+                 ngx_http_upstream_copy_multi_header_lines,
+                 offsetof(ngx_http_headers_out_t, link), 0 },
+
     { ngx_string("X-Accel-Expires"),
                  ngx_http_upstream_process_accel_expires, 0,
                  ngx_http_upstream_copy_header_line, 0, 0 },
diff --git a/src/http/ngx_http_variables.c b/src/http/ngx_http_variables.c
index ab82177..669600a 100644
--- a/src/http/ngx_http_variables.c
+++ b/src/http/ngx_http_variables.c
@@ -318,6 +318,9 @@
     { ngx_string("sent_http_cache_control"), NULL, ngx_http_variable_headers,
       offsetof(ngx_http_request_t, headers_out.cache_control), 0, 0 },
 
+    { ngx_string("sent_http_link"), NULL, ngx_http_variable_headers,
+      offsetof(ngx_http_request_t, headers_out.link), 0, 0 },
+
     { ngx_string("limit_rate"), ngx_http_variable_request_set_size,
       ngx_http_variable_request_get_size,
       offsetof(ngx_http_request_t, limit_rate),
