diff --git a/auth_request.t b/auth_request.t
index d683166..9ab32de 100644
--- a/auth_request.t
+++ b/auth_request.t
@@ -25,7 +25,7 @@
 
 my $t = Test::Nginx->new()
 	->has(qw/http rewrite proxy cache fastcgi auth_basic auth_request/)
-	->plan(19);
+	->plan(20);
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -129,6 +129,20 @@
             proxy_cache_valid 1m;
         }
 
+        location /proxy-multi {
+            auth_request /auth-proxy-multi;
+        }
+        location = /auth-proxy-multi {
+            proxy_pass http://127.0.0.1:8080/auth-multi;
+            proxy_pass_request_body off;
+            proxy_set_header Content-Length "";
+        }
+        location = /auth-multi {
+            add_header WWW-Authenticate foo always;
+            add_header WWW-Authenticate bar always;
+            return 401;
+        }
+
         location /fastcgi {
             auth_request /auth-fastcgi;
         }
@@ -187,6 +201,16 @@
 
 like(http_post_big('/proxy-double'), qr/ 204 /, 'proxy auth with body read');
 
+# Multiple WWW-Authenticate headers (ticket #485).
+
+TODO: {
+local $TODO = 'not yet' unless $t->has_version('1.23.0');
+
+like(http_get('/proxy-multi-auth'), qr/WWW-Authenticate: foo.*bar/s,
+	'multiple www-authenticate headers');
+
+}
+
 SKIP: {
 	eval { require FCGI; };
 	skip 'FCGI not installed', 2 if $@;
diff --git a/proxy_intercept_errors.t b/proxy_intercept_errors.t
new file mode 100644
index 0000000..a0579f8
--- /dev/null
+++ b/proxy_intercept_errors.t
@@ -0,0 +1,105 @@
+#!/usr/bin/perl
+
+# (C) Maxim Dounin
+
+# Tests for http proxy module, proxy_intercept_errors directive.
+
+###############################################################################
+
+use warnings;
+use strict;
+
+use Test::More;
+
+BEGIN { use FindBin; chdir($FindBin::Bin); }
+
+use lib 'lib';
+use Test::Nginx;
+
+###############################################################################
+
+select STDERR; $| = 1;
+select STDOUT; $| = 1;
+
+my $t = Test::Nginx->new()->has(qw/http proxy rewrite/)->plan(4);
+
+$t->write_file_expand('nginx.conf', <<'EOF');
+
+%%TEST_GLOBALS%%
+
+daemon off;
+
+events {
+}
+
+http {
+    %%TEST_GLOBALS_HTTP%%
+
+    server {
+        listen       127.0.0.1:8080;
+        server_name  localhost;
+
+        location / {
+            proxy_pass http://127.0.0.1:8081;
+            proxy_intercept_errors on;
+            error_page 401 500 /intercepted;
+        }
+
+        location = /intercepted {
+            return 200 "intercepted\n";
+        }
+    }
+
+    server {
+        listen       127.0.0.1:8081;
+        server_name  localhost;
+
+        location / {
+            return 404 "SEE-THIS";
+        }
+
+        location /500 {
+            return 500;
+        }
+
+        location /auth {
+            add_header WWW-Authenticate foo always;
+            return 401;
+        }
+
+        location /auth-multi {
+            add_header WWW-Authenticate foo always;
+            add_header WWW-Authenticate bar always;
+            return 401;
+        }
+    }
+}
+
+EOF
+
+$t->run();
+
+###############################################################################
+
+# make sure errors without error_page set are not intercepted
+
+like(http_get('/'), qr/SEE-THIS/, 'not intercepted');
+
+# make sure errors with error_page are intercepted
+
+like(http_get('/500'), qr/500.*intercepted/s, 'intercepted 500');
+like(http_get('/auth'), qr/401.*WWW-Authenticate.*intercepted/s,
+	'intercepted 401');
+
+# make sure multiple WWW-Authenticate headers are returned
+# along with intercepted response (ticket #485)
+
+TODO: {
+local $TODO = 'not yet' unless $t->has_version('1.23.0');
+
+like(http_get('/auth-multi'), qr/401.*WWW-Authenticate: foo.*bar.*intercept/s,
+	'intercepted 401 multi');
+
+}
+
+###############################################################################
