diff --git a/debug_connection_syslog.t b/debug_connection_syslog.t
index fbeddb1..5b28d7a 100644
--- a/debug_connection_syslog.t
+++ b/debug_connection_syslog.t
@@ -38,8 +38,8 @@
 http {
     %%TEST_GLOBALS_HTTP%%
 
-    error_log syslog:server=127.0.0.1:%%PORT_8081_UDP%% alert;
-    error_log syslog:server=127.0.0.1:%%PORT_8082_UDP%% alert;
+    error_log syslog:server=127.0.0.1:%%PORT_8981_UDP%% alert;
+    error_log syslog:server=127.0.0.1:%%PORT_8982_UDP%% alert;
 
     server {
         listen       127.0.0.1:8080;
@@ -64,7 +64,7 @@
 		LocalAddr => "127.0.0.1:$_"
 	)
 		or die "Can't open syslog socket $_: $!";
-} port(8081), port(8082);
+} port(8981), port(8982);
 
 is(get_syslog('/', $s1), '', 'no debug_connection syslog 1');
 is(get_syslog('/', $s2), '', 'no debug_connection syslog 2');
diff --git a/http_resolver.t b/http_resolver.t
index f3b4a64..4645e13 100644
--- a/http_resolver.t
+++ b/http_resolver.t
@@ -43,7 +43,7 @@
         server_name  localhost;
 
         location / {
-            resolver    127.0.0.1:%%PORT_8081_UDP%%;
+            resolver    127.0.0.1:%%PORT_8981_UDP%%;
             resolver_timeout 1s;
             proxy_pass  http://$host:%%PORT_8080%%/backend;
 
@@ -53,37 +53,37 @@
             error_page 504 502 /50x;
         }
         location /two {
-            resolver    127.0.0.1:%%PORT_8081_UDP%% 127.0.0.1:%%PORT_8082_UDP%%;
+            resolver    127.0.0.1:%%PORT_8981_UDP%% 127.0.0.1:%%PORT_8982_UDP%%;
             proxy_pass  http://$host:%%PORT_8080%%/backend;
         }
         location /valid {
-            resolver    127.0.0.1:%%PORT_8081_UDP%% valid=5s;
+            resolver    127.0.0.1:%%PORT_8981_UDP%% valid=5s;
             proxy_pass  http://$host:%%PORT_8080%%/backend;
         }
         location /case {
-            resolver    127.0.0.1:%%PORT_8081_UDP%%;
+            resolver    127.0.0.1:%%PORT_8981_UDP%%;
             proxy_pass  http://$http_x_name:%%PORT_8080%%/backend;
         }
         location /invalid {
             proxy_pass  http://$host:%%PORT_8080%%/backend;
         }
         location /long {
-            resolver    127.0.0.1:%%PORT_8081_UDP%%;
+            resolver    127.0.0.1:%%PORT_8981_UDP%%;
             resolver_timeout 4s;
             proxy_pass  http://$host:%%PORT_8080%%/backend;
         }
         location /resend {
-            resolver    127.0.0.1:%%PORT_8081_UDP%%;
+            resolver    127.0.0.1:%%PORT_8981_UDP%%;
             resolver_timeout 8s;
             proxy_pass  http://$host:%%PORT_8080%%/backend;
         }
         location /bad {
-            resolver    127.0.0.1:%%PORT_8084_UDP%%;
+            resolver    127.0.0.1:%%PORT_8984_UDP%%;
             resolver_timeout 1s;
             proxy_pass  http://$host:%%PORT_8080%%/backend;
         }
         location /tcp {
-            resolver    127.0.0.1:%%PORT_8083_UDP%% 127.0.0.1:%%PORT_8082_UDP%%;
+            resolver    127.0.0.1:%%PORT_8983_UDP%% 127.0.0.1:%%PORT_8982_UDP%%;
             resolver_timeout 1s;
             proxy_pass  http://$host:%%PORT_8080%%/backend;
             proxy_connect_timeout 1s;
@@ -107,20 +107,20 @@
 
 EOF
 
-$t->run_daemon(\&dns_daemon, port(8081), $t);
-$t->run_daemon(\&dns_daemon, port(8082), $t);
+$t->run_daemon(\&dns_daemon, port(8981), $t);
+$t->run_daemon(\&dns_daemon, port(8982), $t);
 
-$t->run_daemon(\&dns_daemon, port(8083), $t, tcp => 1);
-$t->waitforfile($t->testdir . '/' . port(8083));
-port(8083, socket => 1)->close();
+$t->run_daemon(\&dns_daemon, port(8983), $t, tcp => 1);
+$t->waitforfile($t->testdir . '/' . port(8983));
+port(8983, socket => 1)->close();
 
-$t->run_daemon(\&dns_daemon, port(8084), $t);
+$t->run_daemon(\&dns_daemon, port(8984), $t);
 
 $t->run()->plan(38);
 
-$t->waitforfile($t->testdir . '/' . port(8081));
-$t->waitforfile($t->testdir . '/' . port(8082));
-$t->waitforfile($t->testdir . '/' . port(8084));
+$t->waitforfile($t->testdir . '/' . port(8981));
+$t->waitforfile($t->testdir . '/' . port(8982));
+$t->waitforfile($t->testdir . '/' . port(8984));
 
 ###############################################################################
 
@@ -483,7 +483,7 @@
 		push @rdata, rd_addr(0, '127.0.0.1');
 
 	} elsif ($name eq '2.example.net') {
-		if ($port == port(8081)) {
+		if ($port == port(8981)) {
 			$state->{twocnt}++;
 		}
 		if ($state->{twocnt} & 1) {
@@ -495,7 +495,7 @@
 		}
 
 	} elsif ($name =~ /tcp2?.example.net/) {
-		$rcode = FORMERR if $port == port(8082);
+		$rcode = FORMERR if $port == port(8982);
 		$hdr |= 0x0300 unless $extra{tcp};
 		push @rdata, rd_addr($ttl, $extra{tcp}
 			? '127.0.0.1' : '127.0.0.201') if $type == A;
@@ -531,7 +531,7 @@
 	my $tcp = 0;
 
 	if ($extra{tcp}) {
-		$tcp = port(8083, socket => 1);
+		$tcp = port(8983, socket => 1);
 		$sel->add($tcp);
 	}
 
diff --git a/http_resolver_aaaa.t b/http_resolver_aaaa.t
index 2592037..6ae16bc 100644
--- a/http_resolver_aaaa.t
+++ b/http_resolver_aaaa.t
@@ -42,7 +42,7 @@
         server_name  localhost;
 
         location / {
-            resolver    127.0.0.1:%%PORT_8081_UDP%%;
+            resolver    127.0.0.1:%%PORT_8981_UDP%%;
             proxy_pass  http://$host:%%PORT_8080%%/backend;
 
             proxy_next_upstream http_504 timeout error;
@@ -52,7 +52,7 @@
             add_header X-Host $upstream_addr;
         }
         location /two {
-            resolver    127.0.0.1:%%PORT_8081_UDP%% 127.0.0.1:%%PORT_8082_UDP%%;
+            resolver    127.0.0.1:%%PORT_8981_UDP%% 127.0.0.1:%%PORT_8982_UDP%%;
             proxy_pass  http://$host:%%PORT_8080%%/backend;
         }
 
@@ -69,11 +69,11 @@
 
 $t->try_run('no inet6 support')->plan(72);
 
-$t->run_daemon(\&dns_daemon, port(8081), $t);
-$t->run_daemon(\&dns_daemon, port(8082), $t);
+$t->run_daemon(\&dns_daemon, port(8981), $t);
+$t->run_daemon(\&dns_daemon, port(8982), $t);
 
-$t->waitforfile($t->testdir . '/' . port(8081));
-$t->waitforfile($t->testdir . '/' . port(8082));
+$t->waitforfile($t->testdir . '/' . port(8981));
+$t->waitforfile($t->testdir . '/' . port(8982));
 
 ###############################################################################
 
@@ -332,7 +332,7 @@
 		}
 
 	} elsif ($name eq '2.example.net') {
-		if ($port == port(8081)) {
+		if ($port == port(8981)) {
 			$state->{twocnt}++;
 		}
 		if ($state->{twocnt} & 1) {
diff --git a/http_resolver_cleanup.t b/http_resolver_cleanup.t
index ada4976..5aef6a4 100644
--- a/http_resolver_cleanup.t
+++ b/http_resolver_cleanup.t
@@ -45,7 +45,7 @@
         server_name  localhost;
 
         location / {
-            resolver 127.0.0.1:%%PORT_8081_UDP%%;
+            resolver 127.0.0.1:%%PORT_8981_UDP%%;
             proxy_pass http://example.net/$args;
         }
 
@@ -58,7 +58,7 @@
 EOF
 
 $t->run_daemon(\&dns_daemon, $t);
-$t->run()->waitforfile($t->testdir . '/' . port(8081));
+$t->run()->waitforfile($t->testdir . '/' . port(8981));
 
 ###############################################################################
 
@@ -85,14 +85,14 @@
 
 	my $socket = IO::Socket::INET->new(
 		LocalAddr => '127.0.0.1',
-		LocalPort => port(8081),
+		LocalPort => port(8981),
 		Proto => 'udp',
 	)
 		or die "Can't create UDP socket: $!\n";
 
 	# signal we are ready
 
-	open my $fh, '>', $t->testdir() . '/' . port(8081);
+	open my $fh, '>', $t->testdir() . '/' . port(8981);
 	close $fh;
 
 	while (1) {
diff --git a/http_resolver_cname.t b/http_resolver_cname.t
index 079a289..255dcd9 100644
--- a/http_resolver_cname.t
+++ b/http_resolver_cname.t
@@ -41,14 +41,14 @@
         server_name  localhost;
 
         location /short {
-            resolver    127.0.0.1:%%PORT_8081_UDP%%;
+            resolver    127.0.0.1:%%PORT_8981_UDP%%;
             resolver_timeout 2s;
 
             proxy_pass  http://$host:%%PORT_8080%%/t;
         }
 
         location /long {
-            resolver    127.0.0.1:%%PORT_8081_UDP%%;
+            resolver    127.0.0.1:%%PORT_8981_UDP%%;
             resolver_timeout 5s;
 
             proxy_pass  http://$host:%%PORT_8080%%/t;
@@ -60,12 +60,12 @@
 
 EOF
 
-$t->run_daemon(\&dns_daemon, port(8081), $t);
+$t->run_daemon(\&dns_daemon, port(8981), $t);
 
 $t->write_file('t', '');
 $t->run();
 
-$t->waitforfile($t->testdir . '/' . port(8081));
+$t->waitforfile($t->testdir . '/' . port(8981));
 
 ###############################################################################
 
diff --git a/mail_error_log.t b/mail_error_log.t
index 1bbcab4..013de3d 100644
--- a/mail_error_log.t
+++ b/mail_error_log.t
@@ -35,7 +35,7 @@
 
 error_log %%TESTDIR%%/e_glob.log info;
 error_log %%TESTDIR%%/e_glob2.log info;
-error_log syslog:server=127.0.0.1:%%PORT_8081_UDP%% info;
+error_log syslog:server=127.0.0.1:%%PORT_8981_UDP%% info;
 
 daemon off;
 
@@ -51,7 +51,7 @@
 
         error_log %%TESTDIR%%/e_debug.log debug;
         error_log %%TESTDIR%%/e_info.log info;
-        error_log syslog:server=127.0.0.1:%%PORT_8082_UDP%% info;
+        error_log syslog:server=127.0.0.1:%%PORT_8982_UDP%% info;
         error_log stderr info;
     }
 
@@ -59,7 +59,7 @@
         listen     127.0.0.1:8145;
         protocol   imap;
 
-        error_log syslog:server=127.0.0.1:%%PORT_8083_UDP%% info;
+        error_log syslog:server=127.0.0.1:%%PORT_8983_UDP%% info;
     }
 }
 
@@ -88,8 +88,8 @@
 	or die "Can't open stderr file: $!";
 
 $t->run_daemon(\&Test::Nginx::IMAP::imap_test_daemon);
-$t->run_daemon(\&syslog_daemon, port(8081), $t, 's_glob.log');
-$t->run_daemon(\&syslog_daemon, port(8082), $t, 's_info.log');
+$t->run_daemon(\&syslog_daemon, port(8981), $t, 's_glob.log');
+$t->run_daemon(\&syslog_daemon, port(8982), $t, 's_info.log');
 
 $t->waitforsocket('127.0.0.1:' . port(8144));
 $t->waitforfile($t->testdir . '/s_glob.log');
@@ -169,7 +169,7 @@
 		alarm(1);
 		$s = IO::Socket::INET->new(
 			Proto => 'udp',
-			LocalAddr => '127.0.0.1:' . port(8083)
+			LocalAddr => '127.0.0.1:' . port(8983)
 		);
 		alarm(0);
 	};
diff --git a/mail_resolver.t b/mail_resolver.t
index e4227cf..8dc06eb 100644
--- a/mail_resolver.t
+++ b/mail_resolver.t
@@ -46,47 +46,47 @@
     server {
         listen    127.0.0.1:8025;
         protocol  smtp;
-        resolver  127.0.0.1:%%PORT_8081_UDP%%
-                  127.0.0.1:%%PORT_8082_UDP%%
-                  127.0.0.1:%%PORT_8083_UDP%%;
+        resolver  127.0.0.1:%%PORT_8981_UDP%%
+                  127.0.0.1:%%PORT_8982_UDP%%
+                  127.0.0.1:%%PORT_8983_UDP%%;
     }
 
     server {
         listen    127.0.0.1:8027;
         protocol  smtp;
-        resolver  127.0.0.1:%%PORT_8082_UDP%%;
+        resolver  127.0.0.1:%%PORT_8982_UDP%%;
     }
 
     server {
         listen    127.0.0.1:8028;
         protocol  smtp;
-        resolver  127.0.0.1:%%PORT_8083_UDP%%;
+        resolver  127.0.0.1:%%PORT_8983_UDP%%;
         resolver_timeout 1s;
     }
 
     server {
         listen    127.0.0.1:8029;
         protocol  smtp;
-        resolver  127.0.0.1:%%PORT_8084_UDP%%;
+        resolver  127.0.0.1:%%PORT_8984_UDP%%;
     }
 
     server {
         listen    127.0.0.1:8030;
         protocol  smtp;
-        resolver  127.0.0.1:%%PORT_8085_UDP%%;
+        resolver  127.0.0.1:%%PORT_8985_UDP%%;
     }
 
     server {
         listen    127.0.0.1:8031;
         protocol  smtp;
-        resolver  127.0.0.1:%%PORT_8086_UDP%%;
+        resolver  127.0.0.1:%%PORT_8986_UDP%%;
         resolver_timeout 1s;
     }
 
     server {
         listen    127.0.0.1:8032;
         protocol  smtp;
-        resolver  127.0.0.1:%%PORT_8087_UDP%%;
+        resolver  127.0.0.1:%%PORT_8987_UDP%%;
     }
 
 }
@@ -116,12 +116,12 @@
 EOF
 
 $t->run_daemon(\&Test::Nginx::SMTP::smtp_test_daemon);
-$t->run_daemon(\&dns_daemon, port($_), $t) foreach (8081 .. 8087);
+$t->run_daemon(\&dns_daemon, port($_), $t) foreach (8981 .. 8987);
 
 $t->run();
 
 $t->waitforsocket('127.0.0.1:' . port(8026));
-$t->waitforfile($t->testdir . '/' . port($_)) foreach (8081 .. 8087);
+$t->waitforfile($t->testdir . '/' . port($_)) foreach (8981 .. 8987);
 
 ###############################################################################
 
@@ -140,7 +140,7 @@
 $s->send('QUIT');
 $s->read();
 
-# Cached PTR prevents from querying bad ns on port 8083
+# Cached PTR prevents from querying bad ns on port 8983
 
 $s = Test::Nginx::SMTP->new();
 $s->read();
@@ -289,34 +289,34 @@
 		push @rdata, rd_addr($ttl, '127.0.0.1');
 
 	} elsif ($name eq '1.0.0.127.in-addr.arpa' && $type == PTR) {
-		if ($port == port(8081)) {
+		if ($port == port(8981)) {
 			push @rdata, rd_name(PTR, $ttl, 'a.example.net');
 
-		} elsif ($port == port(8082)) {
+		} elsif ($port == port(8982)) {
 			$rcode = SERVFAIL;
 
-		} elsif ($port == port(8083)) {
+		} elsif ($port == port(8983)) {
 			# zero length RDATA
 
 			push @rdata, pack("n3N n", 0xc00c, PTR, IN, $ttl, 0);
 
-		} elsif ($port == port(8084)) {
+		} elsif ($port == port(8984)) {
 			# PTR answered with CNAME
 
 			push @rdata, rd_name(CNAME, $ttl,
 				'1.1.0.0.127.in-addr.arpa');
 
-		} elsif ($port == port(8085)) {
+		} elsif ($port == port(8985)) {
 			# uncompressed answer
 
 			push @rdata, pack("(C/a*)6x n2N n(C/a*)3x",
 				('1', '0', '0', '127', 'in-addr', 'arpa'),
 				PTR, IN, $ttl, 15, ('a', 'example', 'net'));
 
-		} elsif ($port == port(8086)) {
+		} elsif ($port == port(8986)) {
 			push @rdata, rd_name(DNAME, $ttl, 'a.example.net');
 
-		} elsif ($port == port(8087)) {
+		} elsif ($port == port(8987)) {
 			# PTR answered with CNAME+PTR
 
 			push @rdata, rd_name(CNAME, $ttl,
diff --git a/proxy_next_upstream_tries.t b/proxy_next_upstream_tries.t
index 232c177..e7b3a03 100644
--- a/proxy_next_upstream_tries.t
+++ b/proxy_next_upstream_tries.t
@@ -68,7 +68,7 @@
         }
 
         location /tries/resolver {
-            resolver 127.0.0.1:%%PORT_8082_UDP%%;
+            resolver 127.0.0.1:%%PORT_8982_UDP%%;
 
             proxy_pass http://$host:%%PORT_8081%%;
             proxy_next_upstream_tries 2;
@@ -90,7 +90,7 @@
         }
 
         location /timeout/resolver {
-            resolver 127.0.0.1:%%PORT_8082_UDP%%;
+            resolver 127.0.0.1:%%PORT_8982_UDP%%;
 
             proxy_pass http://$host:%%PORT_8081%%/w2;
             proxy_next_upstream_timeout 3800ms;
@@ -110,11 +110,11 @@
 EOF
 
 $t->run_daemon(\&http_daemon, port(8081));
-$t->run_daemon(\&dns_daemon, port(8082), $t);
+$t->run_daemon(\&dns_daemon, port(8982), $t);
 $t->run();
 
 $t->waitforsocket('127.0.0.1:' . port(8081));
-$t->waitforfile($t->testdir . '/' . port(8082));
+$t->waitforfile($t->testdir . '/' . port(8982));
 
 ###############################################################################
 
diff --git a/stream_error_log.t b/stream_error_log.t
index 068ca48..d5df787 100644
--- a/stream_error_log.t
+++ b/stream_error_log.t
@@ -35,7 +35,7 @@
 
 error_log %%TESTDIR%%/e_glob.log info;
 error_log %%TESTDIR%%/e_glob2.log info;
-error_log syslog:server=127.0.0.1:%%PORT_8083_UDP%% info;
+error_log syslog:server=127.0.0.1:%%PORT_8983_UDP%% info;
 
 daemon off;
 
@@ -44,7 +44,7 @@
 
 stream {
     upstream u {
-        server 127.0.0.1:%%PORT_8083_UDP%% down;
+        server 127.0.0.1:%%PORT_8983_UDP%% down;
     }
 
     server {
@@ -62,8 +62,8 @@
         proxy_pass  127.0.0.1:8081;
 
         error_log %%TESTDIR%%/e_stream.log info;
-        error_log syslog:server=127.0.0.1:%%PORT_8085_UDP%% info;
-        error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%% info;
+        error_log syslog:server=127.0.0.1:%%PORT_8985_UDP%% info;
+        error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%% info;
     }
 }
 
@@ -75,8 +75,8 @@
 	or die "Can't open stderr file: $!";
 
 $t->run_daemon(\&stream_daemon);
-$t->run_daemon(\&syslog_daemon, port(8083), $t, 's_glob.log');
-$t->run_daemon(\&syslog_daemon, port(8084), $t, 's_stream.log');
+$t->run_daemon(\&syslog_daemon, port(8983), $t, 's_glob.log');
+$t->run_daemon(\&syslog_daemon, port(8984), $t, 's_stream.log');
 
 $t->waitforsocket('127.0.0.1:' . port(8081));
 $t->waitforfile($t->testdir . '/s_glob.log');
@@ -114,7 +114,7 @@
 # syslog
 
 parse_syslog_message('syslog', get_syslog('data2', '127.0.0.1:' . port(8082),
-	port(8085)));
+	port(8985)));
 
 is_deeply(levels($t, 's_glob.log'), levels($t, 'e_glob.log'),
 	'global syslog messages');
diff --git a/stream_js.t b/stream_js.t
index 0a67ab9..a489643 100644
--- a/stream_js.t
+++ b/stream_js.t
@@ -68,7 +68,7 @@
     }
 
     server {
-        listen  127.0.0.1:%%PORT_8085_UDP%% udp;
+        listen  127.0.0.1:%%PORT_8985_UDP%% udp;
         return  $js_addr;
     }
 }
@@ -99,7 +99,7 @@
 
 is(stream('127.0.0.1:' . port(8080))->read(), 'addr=127.0.0.1',
 	'sess.remoteAddress');
-is(dgram('127.0.0.1:' . port(8085))->io('.'), 'addr=127.0.0.1',
+is(dgram('127.0.0.1:' . port(8985))->io('.'), 'addr=127.0.0.1',
 	'sess.remoteAddress udp');
 is(stream('127.0.0.1:' . port(8081))->read(), 'undefined', 'sess.log');
 is(stream('127.0.0.1:' . port(8082))->read(), 'variable=127.0.0.1',
diff --git a/stream_resolver.t b/stream_resolver.t
index ca32b03..79af7b7 100644
--- a/stream_resolver.t
+++ b/stream_resolver.t
@@ -44,7 +44,7 @@
         default  $server_port.many.example.com;
     }
 
-    resolver  127.0.0.1:%%PORT_8080_UDP%%;
+    resolver  127.0.0.1:%%PORT_8980_UDP%%;
 
     server {
         listen      127.0.0.1:8081;
@@ -85,10 +85,10 @@
 
 EOF
 
-$t->run_daemon(\&dns_daemon, port(8080), $t);
+$t->run_daemon(\&dns_daemon, port(8980), $t);
 $t->try_run('no stream resolver')->plan(8);
 
-$t->waitforfile($t->testdir . '/' . port(8080));
+$t->waitforfile($t->testdir . '/' . port(8980));
 
 ###############################################################################
 
diff --git a/stream_udp_limit_conn.t b/stream_udp_limit_conn.t
index 2cba334..b01dded 100644
--- a/stream_udp_limit_conn.t
+++ b/stream_udp_limit_conn.t
@@ -41,34 +41,34 @@
     proxy_timeout    1s;
 
     server {
-        listen           127.0.0.1:%%PORT_8081_UDP%% udp;
-        proxy_pass       127.0.0.1:%%PORT_8080_UDP%%;
+        listen           127.0.0.1:%%PORT_8981_UDP%% udp;
+        proxy_pass       127.0.0.1:%%PORT_8980_UDP%%;
 
         limit_conn       zone 1;
         proxy_responses  2;
     }
 
     server {
-        listen           127.0.0.1:%%PORT_8082_UDP%% udp;
-        proxy_pass       127.0.0.1:%%PORT_8080_UDP%%;
+        listen           127.0.0.1:%%PORT_8982_UDP%% udp;
+        proxy_pass       127.0.0.1:%%PORT_8980_UDP%%;
         limit_conn       zone2 1;
     }
 
     server {
-        listen           127.0.0.1:%%PORT_8083_UDP%% udp;
-        proxy_pass       127.0.0.1:%%PORT_8080_UDP%%;
+        listen           127.0.0.1:%%PORT_8983_UDP%% udp;
+        proxy_pass       127.0.0.1:%%PORT_8980_UDP%%;
         limit_conn       zone 5;
     }
 
     server {
-        listen           127.0.0.1:%%PORT_8084_UDP%% udp;
-        proxy_pass       127.0.0.1:%%PORT_8081_UDP%%;
+        listen           127.0.0.1:%%PORT_8984_UDP%% udp;
+        proxy_pass       127.0.0.1:%%PORT_8981_UDP%%;
         limit_conn       zone2 1;
     }
 
     server {
-        listen           127.0.0.1:%%PORT_8085_UDP%% udp;
-        proxy_pass       127.0.0.1:%%PORT_8081_UDP%%;
+        listen           127.0.0.1:%%PORT_8985_UDP%% udp;
+        proxy_pass       127.0.0.1:%%PORT_8981_UDP%%;
         limit_conn       zone 1;
     }
 }
@@ -77,13 +77,13 @@
 
 $t->run();
 $t->run_daemon(\&udp_daemon, $t);
-$t->waitforfile($t->testdir . '/' . port(8080));
+$t->waitforfile($t->testdir . '/' . port(8980));
 
 ###############################################################################
 
 # same and other zones
 
-my $s = dgram('127.0.0.1:' . port(8081));
+my $s = dgram('127.0.0.1:' . port(8981));
 
 is($s->io('1'), '1', 'passed');
 
@@ -91,21 +91,21 @@
 # in same socket will be treated as new connection
 
 is($s->io('1', read_timeout => 0.1), '', 'rejected new connection');
-is(dgram('127.0.0.1:' . port(8081))->io('1', read_timeout => 0.1), '',
+is(dgram('127.0.0.1:' . port(8981))->io('1', read_timeout => 0.1), '',
 	'rejected same zone');
-is(dgram('127.0.0.1:' . port(8082))->io('1'), '1', 'passed different zone');
-is(dgram('127.0.0.1:' . port(8083))->io('1'), '1', 'passed same zone unlimited');
+is(dgram('127.0.0.1:' . port(8982))->io('1'), '1', 'passed different zone');
+is(dgram('127.0.0.1:' . port(8983))->io('1'), '1', 'passed same zone unlimited');
 
 sleep 1;	# waiting for proxy_timeout to expire
 
 is($s->io('2', read => 2), '12', 'new connection after proxy_timeout');
 
-is(dgram('127.0.0.1:' . port(8081))->io('2', read => 2), '12', 'passed 2');
+is(dgram('127.0.0.1:' . port(8981))->io('2', read => 2), '12', 'passed 2');
 
 # zones proxy chain
 
-is(dgram('127.0.0.1:' . port(8084))->io('1'), '1', 'passed proxy');
-is(dgram('127.0.0.1:' . port(8085))->io('1', read_timeout => 0.1), '',
+is(dgram('127.0.0.1:' . port(8984))->io('1'), '1', 'passed proxy');
+is(dgram('127.0.0.1:' . port(8985))->io('1', read_timeout => 0.1), '',
 	'rejected proxy');
 
 ###############################################################################
@@ -115,14 +115,14 @@
 
 	my $server = IO::Socket::INET->new(
 		Proto => 'udp',
-		LocalAddr => '127.0.0.1:' . port(8080),
+		LocalAddr => '127.0.0.1:' . port(8980),
 		Reuse => 1,
 	)
 		or die "Can't create listening socket: $!\n";
 
 	# signal we are ready
 
-	open my $fh, '>', $t->testdir() . '/' . port(8080);
+	open my $fh, '>', $t->testdir() . '/' . port(8980);
 	close $fh;
 
 	while (1) {
diff --git a/stream_udp_proxy.t b/stream_udp_proxy.t
index 99b62df..8272d2d 100644
--- a/stream_udp_proxy.t
+++ b/stream_udp_proxy.t
@@ -36,43 +36,43 @@
     proxy_timeout        1s;
 
     server {
-        listen           127.0.0.1:%%PORT_8080_UDP%% udp;
-        proxy_pass       127.0.0.1:%%PORT_8081_UDP%%;
+        listen           127.0.0.1:%%PORT_8980_UDP%% udp;
+        proxy_pass       127.0.0.1:%%PORT_8981_UDP%%;
 
         proxy_responses  0;
     }
 
     server {
-        listen           127.0.0.1:%%PORT_8082_UDP%% udp;
-        proxy_pass       127.0.0.1:%%PORT_8081_UDP%%;
+        listen           127.0.0.1:%%PORT_8982_UDP%% udp;
+        proxy_pass       127.0.0.1:%%PORT_8981_UDP%%;
 
         proxy_responses  2;
     }
 
     server {
-        listen           127.0.0.1:%%PORT_8083_UDP%% udp;
-        proxy_pass       127.0.0.1:%%PORT_8081_UDP%%;
+        listen           127.0.0.1:%%PORT_8983_UDP%% udp;
+        proxy_pass       127.0.0.1:%%PORT_8981_UDP%%;
     }
 }
 
 EOF
 
 
-$t->run_daemon(\&udp_daemon, port(8081), $t);
+$t->run_daemon(\&udp_daemon, port(8981), $t);
 $t->run();
-$t->waitforfile($t->testdir . '/' . port(8081));
+$t->waitforfile($t->testdir . '/' . port(8981));
 
 ###############################################################################
 
-my $s = dgram('127.0.0.1:' . port(8080));
+my $s = dgram('127.0.0.1:' . port(8980));
 is($s->io('1', read => 1, read_timeout => 0.5), '', 'proxy responses 0');
 
-$s = dgram('127.0.0.1:' . port(8082));
+$s = dgram('127.0.0.1:' . port(8982));
 is($s->io('1'), '1', 'proxy responses 1');
 is($s->io('2', read => 2), '12', 'proxy responses 2');
 is($s->io('3', read => 3, read_timeout => 0.5), '12', 'proxy responses 3');
 
-$s = dgram('127.0.0.1:' . port(8083));
+$s = dgram('127.0.0.1:' . port(8983));
 is($s->io('3', read => 3), '123', 'proxy responses default');
 
 ###############################################################################
@@ -82,14 +82,14 @@
 
 	my $server = IO::Socket::INET->new(
 		Proto => 'udp',
-		LocalAddr => '127.0.0.1:' . port(8081),
+		LocalAddr => '127.0.0.1:' . port(8981),
 		Reuse => 1,
 	)
 		or die "Can't create listening socket: $!\n";
 
 	# signal we are ready
 
-	open my $fh, '>', $t->testdir() . '/' . port(8081);
+	open my $fh, '>', $t->testdir() . '/' . port(8981);
 	close $fh;
 
 	while (1) {
diff --git a/stream_udp_upstream.t b/stream_udp_upstream.t
index 22baab7..31004d9 100644
--- a/stream_udp_upstream.t
+++ b/stream_udp_upstream.t
@@ -41,44 +41,44 @@
                      $upstream_bytes_sent!$upstream_bytes_received;
 
     upstream u {
-        server 127.0.0.1:%%PORT_8084_UDP%%;
-        server 127.0.0.1:%%PORT_8085_UDP%%;
+        server 127.0.0.1:%%PORT_8984_UDP%%;
+        server 127.0.0.1:%%PORT_8985_UDP%%;
     }
 
     upstream u2 {
-        server 127.0.0.1:%%PORT_8086_UDP%% down;
-        server 127.0.0.1:%%PORT_8086_UDP%%;
-        server 127.0.0.1:%%PORT_8084_UDP%%;
-        server 127.0.0.1:%%PORT_8085_UDP%%;
+        server 127.0.0.1:%%PORT_8986_UDP%% down;
+        server 127.0.0.1:%%PORT_8986_UDP%%;
+        server 127.0.0.1:%%PORT_8984_UDP%%;
+        server 127.0.0.1:%%PORT_8985_UDP%%;
     }
 
     upstream u3 {
-        server 127.0.0.1:%%PORT_8084_UDP%%;
-        server 127.0.0.1:%%PORT_8085_UDP%% weight=2;
+        server 127.0.0.1:%%PORT_8984_UDP%%;
+        server 127.0.0.1:%%PORT_8985_UDP%% weight=2;
     }
 
     upstream u4 {
-        server 127.0.0.1:%%PORT_8086_UDP%%;
-        server 127.0.0.1:%%PORT_8084_UDP%% backup;
+        server 127.0.0.1:%%PORT_8986_UDP%%;
+        server 127.0.0.1:%%PORT_8984_UDP%% backup;
     }
 
     server {
-        listen      127.0.0.1:%%PORT_8080_UDP%% udp;
+        listen      127.0.0.1:%%PORT_8980_UDP%% udp;
         proxy_pass  u;
     }
 
     server {
-        listen      127.0.0.1:%%PORT_8081_UDP%% udp;
+        listen      127.0.0.1:%%PORT_8981_UDP%% udp;
         proxy_pass  u2;
     }
 
     server {
-        listen      127.0.0.1:%%PORT_8082_UDP%% udp;
+        listen      127.0.0.1:%%PORT_8982_UDP%% udp;
         proxy_pass  u3;
     }
 
     server {
-        listen      127.0.0.1:%%PORT_8083_UDP%% udp;
+        listen      127.0.0.1:%%PORT_8983_UDP%% udp;
         proxy_pass  u4;
         access_log  %%TESTDIR%%/u.log bytes;
     }
@@ -86,21 +86,21 @@
 
 EOF
 
-$t->run_daemon(\&udp_daemon, port(8084), $t);
-$t->run_daemon(\&udp_daemon, port(8085), $t);
+$t->run_daemon(\&udp_daemon, port(8984), $t);
+$t->run_daemon(\&udp_daemon, port(8985), $t);
 $t->try_run('no stream access_log')->plan(5);
 
-$t->waitforfile($t->testdir . '/' . port(8084));
-$t->waitforfile($t->testdir . '/' . port(8085));
+$t->waitforfile($t->testdir . '/' . port(8984));
+$t->waitforfile($t->testdir . '/' . port(8985));
 
 ###############################################################################
 
-my @ports = my ($port4, $port5, $port6) = (port(8084), port(8085), port(8086));
+my @ports = my ($port4, $port5, $port6) = (port(8984), port(8985), port(8986));
 
-is(many(10, port(8080)), "$port4: 5, $port5: 5", 'balanced');
-is(many(10, port(8081)), "$port4: 5, $port5: 5", 'failures');
-is(many(9, port(8082)), "$port4: 3, $port5: 6", 'weight');
-is(many(10, port(8083)), "$port4: 10", 'backup');
+is(many(10, port(8980)), "$port4: 5, $port5: 5", 'balanced');
+is(many(10, port(8981)), "$port4: 5, $port5: 5", 'failures');
+is(many(9, port(8982)), "$port4: 3, $port5: 6", 'weight');
+is(many(10, port(8983)), "$port4: 10", 'backup');
 
 $t->stop();
 
diff --git a/stream_udp_upstream_hash.t b/stream_udp_upstream_hash.t
index 15c4764..9b47021 100644
--- a/stream_udp_upstream_hash.t
+++ b/stream_udp_upstream_hash.t
@@ -40,42 +40,42 @@
 
     upstream hash {
         hash $remote_addr;
-        server 127.0.0.1:%%PORT_8082_UDP%%;
-        server 127.0.0.1:%%PORT_8083_UDP%%;
+        server 127.0.0.1:%%PORT_8982_UDP%%;
+        server 127.0.0.1:%%PORT_8983_UDP%%;
     }
 
     upstream cons {
         hash $remote_addr consistent;
-        server 127.0.0.1:%%PORT_8082_UDP%%;
-        server 127.0.0.1:%%PORT_8083_UDP%%;
+        server 127.0.0.1:%%PORT_8982_UDP%%;
+        server 127.0.0.1:%%PORT_8983_UDP%%;
     }
 
     server {
-        listen      127.0.0.1:%%PORT_8080_UDP%% udp;
+        listen      127.0.0.1:%%PORT_8980_UDP%% udp;
         proxy_pass  hash;
     }
 
     server {
-        listen      127.0.0.1:%%PORT_8081_UDP%% udp;
+        listen      127.0.0.1:%%PORT_8981_UDP%% udp;
         proxy_pass  cons;
     }
 }
 
 EOF
 
-$t->run_daemon(\&udp_daemon, port(8082), $t);
-$t->run_daemon(\&udp_daemon, port(8083), $t);
+$t->run_daemon(\&udp_daemon, port(8982), $t);
+$t->run_daemon(\&udp_daemon, port(8983), $t);
 $t->run();
 
-$t->waitforfile($t->testdir . '/' . port(8082));
-$t->waitforfile($t->testdir . '/' . port(8083));
+$t->waitforfile($t->testdir . '/' . port(8982));
+$t->waitforfile($t->testdir . '/' . port(8983));
 
 ###############################################################################
 
-my @ports = my ($port2, $port3) = (port(8082), port(8083));
+my @ports = my ($port2, $port3) = (port(8982), port(8983));
 
-is(many(10, port(8080)), "$port3: 10", 'hash');
-like(many(10, port(8081)), qr/($port2|$port3): 10/, 'hash consistent');
+is(many(10, port(8980)), "$port3: 10", 'hash');
+like(many(10, port(8981)), qr/($port2|$port3): 10/, 'hash consistent');
 
 ###############################################################################
 
diff --git a/stream_udp_upstream_least_conn.t b/stream_udp_upstream_least_conn.t
index 2c17108..87acabe 100644
--- a/stream_udp_upstream_least_conn.t
+++ b/stream_udp_upstream_least_conn.t
@@ -39,34 +39,34 @@
 
     upstream u {
         least_conn;
-        server 127.0.0.1:%%PORT_8081_UDP%%;
-        server 127.0.0.1:%%PORT_8082_UDP%%;
+        server 127.0.0.1:%%PORT_8981_UDP%%;
+        server 127.0.0.1:%%PORT_8982_UDP%%;
     }
 
     server {
-        listen      127.0.0.1:%%PORT_8080_UDP%% udp;
+        listen      127.0.0.1:%%PORT_8980_UDP%% udp;
         proxy_pass  u;
     }
 }
 
 EOF
 
-$t->run_daemon(\&udp_daemon, port(8081), $t);
-$t->run_daemon(\&udp_daemon, port(8082), $t);
+$t->run_daemon(\&udp_daemon, port(8981), $t);
+$t->run_daemon(\&udp_daemon, port(8982), $t);
 $t->run();
 
-$t->waitforfile($t->testdir . '/' . port(8081));
-$t->waitforfile($t->testdir . '/' . port(8082));
+$t->waitforfile($t->testdir . '/' . port(8981));
+$t->waitforfile($t->testdir . '/' . port(8982));
 
 ###############################################################################
 
-my @ports = my ($port1, $port2) = (port(8081), port(8082));
+my @ports = my ($port1, $port2) = (port(8981), port(8982));
 
 is(many(10), "$port1: 5, $port2: 5", 'balanced');
 
 my @sockets;
 for (1 .. 2) {
-	my $s = dgram('127.0.0.1:' . port(8080));
+	my $s = dgram('127.0.0.1:' . port(8980));
 	$s->write('w');
 	push @sockets, $s;
 }
@@ -82,7 +82,7 @@
 	my (%ports);
 
 	for (1 .. $count) {
-		if (dgram('127.0.0.1:' . port(8080))->io('.') =~ /(\d+)/) {
+		if (dgram('127.0.0.1:' . port(8980))->io('.') =~ /(\d+)/) {
 			$ports{$1} = 0 unless defined $ports{$1};
 			$ports{$1}++;
 		}
@@ -114,7 +114,7 @@
 
 		my $port = $server->sockport();
 
-		if ($buffer =~ /w/ && $port == port(8081)) {
+		if ($buffer =~ /w/ && $port == port(8981)) {
 			select undef, undef, undef, 2.5;
 		}
 
diff --git a/stream_variables.t b/stream_variables.t
index 0afa55e..9dc435b 100644
--- a/stream_variables.t
+++ b/stream_variables.t
@@ -69,7 +69,7 @@
 
     server {
         listen  127.0.0.1:8086;
-        listen  127.0.0.1:%%PORT_8087_UDP%% udp;
+        listen  127.0.0.1:%%PORT_8987_UDP%% udp;
         return  $protocol;
     }
 }
@@ -102,6 +102,6 @@
 like($data, qr#^\d+.\d+![-+\w/: ]+![-+\dT:]+$#, 'time');
 
 is(stream('127.0.0.1:' . port(8086))->read(), 'TCP', 'protocol TCP');
-is(dgram('127.0.0.1:' . port(8087))->io('.'), 'UDP', 'protocol UDP');
+is(dgram('127.0.0.1:' . port(8987))->io('.'), 'UDP', 'protocol UDP');
 
 ###############################################################################
diff --git a/syslog.t b/syslog.t
index 0d32763..1d121b8 100644
--- a/syslog.t
+++ b/syslog.t
@@ -32,7 +32,7 @@
 
 %%TEST_GLOBALS%%
 
-error_log syslog:server=127.0.0.1:%%PORT_8081_UDP%% info;
+error_log syslog:server=127.0.0.1:%%PORT_8981_UDP%% info;
 error_log %%TESTDIR%%/f_glob.log info;
 
 daemon off;
@@ -48,7 +48,7 @@
     log_format empty "";
     log_format logf "$uri:$status";
 
-    error_log syslog:server=127.0.0.1:%%PORT_8082_UDP%% info;
+    error_log syslog:server=127.0.0.1:%%PORT_8982_UDP%% info;
     error_log %%TESTDIR%%/f_http.log info;
 
     server {
@@ -56,94 +56,94 @@
         server_name  localhost;
 
         location /e {
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%;
         }
         location /a {
-            access_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%;
+            access_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%;
         }
         location /ef {
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%,facility=user;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%,facility=user;
         }
         location /es {
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%,severity=alert;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%,severity=alert;
         }
         location /et {
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%,tag=SEETHIS;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%,tag=SEETHIS;
         }
         location /af {
-            access_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%,facility=user;
+            access_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%,facility=user;
         }
         location /as {
             # put severity inside to catch possible parsing programming errors
-            access_log syslog:severity=alert,server=127.0.0.1:%%PORT_8084_UDP%%;
+            access_log syslog:severity=alert,server=127.0.0.1:%%PORT_8984_UDP%%;
         }
         location /at {
-            access_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%,tag=SEETHIS;
+            access_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%,tag=SEETHIS;
         }
         location /e2 {
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%;
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%;
         }
         location /a2 {
-            access_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%;
-            access_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%;
+            access_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%;
+            access_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%;
         }
         location /a_logf {
-            access_log syslog:server=127.0.0.1:%%PORT_8084_UDP%% logf;
+            access_log syslog:server=127.0.0.1:%%PORT_8984_UDP%% logf;
         }
         location /if {
-            access_log syslog:server=127.0.0.1:%%PORT_8083_UDP%% logf
+            access_log syslog:server=127.0.0.1:%%PORT_8983_UDP%% logf
                 if=$arg_logme;
         }
 
         location /nohostname {
-            access_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%,nohostname;
+            access_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%,nohostname;
         }
 
         location /debug {
             limit_req zone=one;
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%% debug;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%% debug;
         }
         location /info {
             limit_req zone=one;
             limit_req_log_level info;
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%% info;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%% info;
         }
         location /notice {
             limit_req zone=one;
             limit_req_log_level notice;
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%% notice;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%% notice;
         }
         location /warn {
             limit_req zone=one;
             limit_req_log_level warn;
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%% warn;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%% warn;
         }
         location /error {
             limit_req zone=one;
             limit_req_log_level error;
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%;
         }
         location /low {
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%% warn;
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%% warn;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%;
         }
         location /dup {
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%;
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%;
         }
         location /high {
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%% emerg;
-            error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%%;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%% emerg;
+            error_log syslog:server=127.0.0.1:%%PORT_8984_UDP%%;
         }
     }
 }
 
 EOF
 
-$t->run_daemon(\&syslog_daemon, port(8081), $t, 's_glob.log');
-$t->run_daemon(\&syslog_daemon, port(8082), $t, 's_http.log');
-$t->run_daemon(\&syslog_daemon, port(8083), $t, 's_if.log');
+$t->run_daemon(\&syslog_daemon, port(8981), $t, 's_glob.log');
+$t->run_daemon(\&syslog_daemon, port(8982), $t, 's_http.log');
+$t->run_daemon(\&syslog_daemon, port(8983), $t, 's_if.log');
 
 $t->waitforfile($t->testdir . '/s_glob.log');
 $t->waitforfile($t->testdir . '/s_http.log');
@@ -155,7 +155,7 @@
 
 my $s = IO::Socket::INET->new(
 	Proto => 'udp',
-	LocalAddr => '127.0.0.1:' . port(8084)
+	LocalAddr => '127.0.0.1:' . port(8984)
 )
 	or die "Can't open syslog socket: $!";
 
