--- ntop/hash.c 2004-03-21 08:38:51.000000000 -0600
+++ ntop/hash.c 2004-03-24 10:42:49.000000000 -0600
@@ -1162,12 +1162,12 @@
       if((ether_addr == NULL) && (isPseudoLocalAddress(hostIpAddress, actualDeviceId)))
 	FD_SET(FLAG_SUBNET_PSEUDO_LOCALHOST, &el->flags);
 
+      setResolvedName(el, el->hostNumIpAddress, FLAG_HOST_SYM_ADDR_TYPE_IP);
+
       /* Trick to fill up the address cache */
       if(myGlobals.numericFlag == 0)
 	ipaddr2str(el->hostIpAddress, 1);
-      else {
-        setResolvedName(el, el->hostNumIpAddress, FLAG_HOST_SYM_ADDR_TYPE_IP);
-      }
+
     } else {
       /* This is a new entry and hostIpAddress was NOT set.  Fill in MAC address, if we have it */
       if(symEthName[0] != '\0') {
--- ntop/util.c 2004-03-24 08:26:01.000000000 -0600
+++ ntop/util.c 2004-03-24 10:10:02.000000000 -0600
@@ -5704,6 +5704,11 @@
   int i;
 
   if(updateValue[0] == '\0') return;
+
+  /* Do not update 0 -> DNS */
+  if((updateType == FLAG_HOST_SYM_ADDR_TYPE_NAME) && 
+     (el->hostResolvedNameType == 0))
+    return;
 
   /* Only update if this is a MORE important type */
   if(updateType > el->hostResolvedNameType) {
