diff --git a/src/hostinfo/ifconfig.py b/src/hostinfo/ifconfig.py
index a6f0c2d31ef34606437eb60a9fc24112fd3cf174..23972a02cbbdbb64d75f01608cf6153d64c88193 100755
--- a/src/hostinfo/ifconfig.py
+++ b/src/hostinfo/ifconfig.py
@@ -33,30 +33,35 @@ def generate(tree, host):
             search = []
             for s, ip in map(lambda ip: (subnet(tree, ip.address[0]), ip),
                              filter(lambda ip: (ip.address[0] and
-                                                subnet(tree, ip.address[0]) and
                                                 (static or
                                                  (not ip.vlan[0] and
                                                   ip.alias[0]))),
                                                 i._ip_)):
-                config += "%sIPADDR%s=%s\n" % (pre, index, ip.address[0])
-                config += "%sGATEWAY%s=%s\n" % (pre, index, s.gateway[0])
-                config += "%sNETMASK%s=%s\n" % (pre, index, s.netmask[0])
-                config += "%sNETWORK%s=%s\n" % (pre, index, s.network[0])
-                config += "%sBROADCAST%s=%s\n" % (pre, index, s.broadcast[0])
                 if ip.search[0]:
                     search.extend(ip.search[0].split())
                     pass
-                for n in re.split("[, ]+", s.name_servers[0]):
-                    # Domain nameservers
-                    if not n in nameservers:
-                        nameservers.append(n)
-                        pass
+                config += "%sIPADDR%s=%s\n" % (pre, index, ip.address[0])
+                if not s:
+                    config += "%sNETMASK%s=255.255.255.255\n" % (pre, index)
                     pass
-                for n in i._nameserver_:
-                    if n.domain[0] == s.domain[0]:
-                        if not '127.0.0.1' in nameservers:
-                            # Insert own address first in nameserver list
-                            nameservers.insert(0, '127.0.0.1')
+                else:
+                    config += "%sGATEWAY%s=%s\n" % (pre, index, s.gateway[0])
+                    config += "%sNETMASK%s=%s\n" % (pre, index, s.netmask[0])
+                    config += "%sNETWORK%s=%s\n" % (pre, index, s.network[0])
+                    config += "%sBROADCAST%s=%s\n" % (pre, index, 
+                                                      s.broadcast[0])
+                    for n in re.split("[, ]+", s.name_servers[0]):
+                        # Domain nameservers
+                        if not n in nameservers:
+                            nameservers.append(n)
+                            pass
+                        pass
+                    for n in i._nameserver_:
+                        if n.domain[0] == s.domain[0]:
+                            if not '127.0.0.1' in nameservers:
+                                # Insert own address first in nameserver list
+                                nameservers.insert(0, '127.0.0.1')
+                                pass
                             pass
                         pass
                     pass