- Fix rresvport_af failure errors (logic error in bsd-bindresvport.c)
diff --git a/ChangeLog b/ChangeLog
index 5cd8348..5ea5c01 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,9 +6,11 @@
  - Document location of Redhat PAM file in INSTALL.
  - Fixed X11 forwarding bug on Linux. libc advertises AF_INET6 
    INADDR_ANY_INIT addresses via getaddrinfo, but may not be able to 
-   deliver (no IPv6 kernel kernel support)
+   deliver (no IPv6 kernel support)
  - Released 1.2.1pre27
 
+ - Fix rresvport_af failure errors (logic error in bsd-bindresvport.c)
+
 20000116
  - Renamed --with-xauth-path to --with-xauth
  - Added --with-pid-dir option
diff --git a/bsd-bindresvport.c b/bsd-bindresvport.c
index 0e91d26..0478067 100644
--- a/bsd-bindresvport.c
+++ b/bsd-bindresvport.c
@@ -84,17 +84,17 @@
 	sa->sa_family = af;
 
 	if (*portp == 0)
-		*portp = (arc4random() % NPORTS) + STARTPORT;
+		*portp = (u_int16_t)(arc4random() % NPORTS) + STARTPORT;
 
 	for(i = 0; i < NPORTS; i++) {
 		error = bind(sd, sa, salen);
-
+		
 		/* Terminate on success */
 		if (error == 0)
 			break;
 			
 		/* Terminate on errors, except "address already in use" */
-		if ((error < 0) && ((errno != EADDRINUSE) || (errno != EINVAL)))
+		if ((error < 0) && !((errno == EADDRINUSE) || (errno == EINVAL)))
 			break;
 			
 		*portp = (i % NPORTS) + STARTPORT;