Index: /trunk/dhcp/dhcpserver.py
===================================================================
--- /trunk/dhcp/dhcpserver.py	(revision 251)
+++ /trunk/dhcp/dhcpserver.py	(revision 252)
@@ -110,7 +110,10 @@
         if ip is None:  #Deactivated?
             return False
-        hostname = nic.machine.name
-        if hostname is not None:
-            hostname += ".servers.csail.mit.edu"
+        if nic.hostname and '.' in nic.hostname:
+            hostname = nic.hostname
+        elif nic.machine.name:
+            hostname = nic.machine.name + '.servers.csail.mit.edu'
+        else:
+            hostname = None
         if ip is not None:
             ip = ipv4(ip)
Index: /trunk/web/main.py
===================================================================
--- /trunk/web/main.py	(revision 251)
+++ /trunk/web/main.py	(revision 252)
@@ -275,4 +275,13 @@
     return templates.vnc(searchList=[d])
 
+def getHostname(nic):
+    if nic.hostname and '.' in nic.hostname:
+        return nic.hostname
+    elif nic.machine:
+        return nic.machine.name + '.servers.csail.mit.edu'
+    else:
+        return None
+
+
 def getNicInfo(data_dict, machine):
     """Helper function for info, get data on nics for a machine.
@@ -290,6 +299,5 @@
         nic_fields.extend([(x % i, y % i) for x, y in nic_fields_template])
         if not i:
-            data_dict['nic%s_hostname' % i] = (machine.name + 
-                                               '.servers.csail.mit.edu')
+            data_dict['nic%s_hostname' % i] = getHostname(machine.nics[i])
         data_dict['nic%s_mac' % i] = machine.nics[i].mac_addr
         data_dict['nic%s_ip' % i] = machine.nics[i].ip
