diff -urN pvfs-2.7.1-netmask/src/io/bmi/bmi_tcp/bmi-tcp.c pvfs-2.7.1/src/io/bmi/bmi_tcp/bmi-tcp.c
--- pvfs-2.7.1-netmask/src/io/bmi/bmi_tcp/bmi-tcp.c	2008-11-13 16:25:24.000000000 -0600
+++ pvfs-2.7.1/src/io/bmi/bmi_tcp/bmi-tcp.c	2008-11-14 08:49:14.000000000 -0600
@@ -1742,12 +1742,12 @@
         /* Invalid network address */
         if (inet_aton(tcp_wildcard, &network_addr.sin_addr) == 0)
         {
-            gossip_lerr("Invalid network specification: %s\n", tcp_wildcard);
+            gossip_err("Invalid network specification: %s\n", tcp_wildcard);
             return -EINVAL;
         }
         /* Matches the subnet mask! */
         if ((map_addr.sin_addr.s_addr & mask_addr.sin_addr.s_addr)
-                == network_addr.sin_addr.s_addr)
+                == (network_addr.sin_addr.s_addr & mask_addr.sin_addr.s_addr))
         {
             return 1;
         }
@@ -3462,7 +3462,7 @@
         {
             /* check with all the masks */
             if ((peer_sockaddr->sin_addr.s_addr & gtcp_allowed_connection->netmask[i].s_addr) 
-                    != gtcp_allowed_connection->network[i].s_addr)
+                    != (gtcp_allowed_connection->network[i].s_addr & gtcp_allowed_connection->netmask[i].s_addr ))
             {
                 continue;
             }
@@ -3489,7 +3489,7 @@
         return 0;
     }
     /* no good */
-    gossip_lerr("Rejecting client %s on port %d: %s\n",
+    gossip_err("Rejecting client %s on port %d: %s\n",
            peer_hostname, peer_port, bad_errors[what_failed]);
     return -1;
 }
