Index: cpukit/libnetworking/netinet/in.c
===================================================================
--- cpukit/libnetworking/netinet/in.c   (revision 790)
+++ cpukit/libnetworking/netinet/in.c   (working copy)
@@ -498,7 +498,14 @@
                in_ifscrub(ifp, ia);
                ia->ia_ifa.ifa_addr = (struct sockaddr *)&ia->ia_addr;
        }
-       if (IN_CLASSA(i))
+        /* Arnout Vandecappelle 2008-05-22
+           Special case for 0.0.0.0: this should not be treated as a class A,
+           but should get netmask 0.0.0.0 as well.  This is required for
+           BOOTP/DHCP.
+        */
+        if (i==0)
+                ia->ia_netmask = 0;
+       else if (IN_CLASSA(i))
                ia->ia_netmask = IN_CLASSA_NET;
        else if (IN_CLASSB(i))
                ia->ia_netmask = IN_CLASSB_NET;

