Tests: set SIGALRM handler before arming timer.
diff --git a/lib/Test/Nginx/IMAP.pm b/lib/Test/Nginx/IMAP.pm
index b37dad0..4ed5b2b 100644
--- a/lib/Test/Nginx/IMAP.pm
+++ b/lib/Test/Nginx/IMAP.pm
@@ -41,8 +41,8 @@
 sub read {
 	my ($self) = @_;
 	eval {
-		alarm(2);
 		local $SIG{ALRM} = sub { die "alarm\n" };
+		alarm(2);
 		while (<$self>) {
 			log_in($_);
 			# XXX
diff --git a/lib/Test/Nginx/POP3.pm b/lib/Test/Nginx/POP3.pm
index 24b0482..aacdb88 100644
--- a/lib/Test/Nginx/POP3.pm
+++ b/lib/Test/Nginx/POP3.pm
@@ -41,8 +41,8 @@
 sub read {
 	my ($self) = @_;
 	eval {
-		alarm(2);
 		local $SIG{ALRM} = sub { die "alarm\n" };
+		alarm(2);
 		while (<$self>) {
 			log_in($_);
 			# XXX
diff --git a/lib/Test/Nginx/SMTP.pm b/lib/Test/Nginx/SMTP.pm
index 6a5f1f0..713cd13 100644
--- a/lib/Test/Nginx/SMTP.pm
+++ b/lib/Test/Nginx/SMTP.pm
@@ -41,8 +41,8 @@
 sub read {
 	my ($self) = @_;
 	eval {
-		alarm(2);
 		local $SIG{ALRM} = sub { die "alarm\n" };
+		alarm(2);
 		while (<$self>) {
 			log_in($_);
 			next if m/^\d\d\d-/;