--- cache_cf.c.old	Tue Oct 17 13:01:52 2000
+++ cache_cf.c	Tue Oct 17 13:03:00 2000
@@ -1012,63 +1012,65 @@
 	    snprintf(xname, 128, "cache_peer_access %s", p->host);
 	    dump_acl_access(entry, xname, p->access);
 	}
 	for (t = p->typelist; t; t = t->next) {
 	    storeAppendPrintf(entry, "neighbor_type_domain %s %s %s\n",
 		p->host,
 		peer_type_str(t->type),
 		t->domain);
 	}
 	p = p->next;
     }
 }
 
 static void
 parse_peer(peer ** head)
 {
     char *token = NULL;
     peer *p;
     int i;
     sockaddr_in_list *s;
-    const char *me = null_string;	/* XXX */
+    const char *me = getMyHostname();
     p = memAllocate(MEM_PEER);
     p->http_port = CACHE_HTTP_PORT;
     p->icp.port = CACHE_ICP_PORT;
     p->weight = 1;
     p->stats.logged_state = PEER_ALIVE;
     if ((token = strtok(NULL, w_space)) == NULL)
 	self_destruct();
     p->host = xstrdup(token);
     if ((token = strtok(NULL, w_space)) == NULL)
 	self_destruct();
     p->type = parseNeighborType(token);
     i = GetInteger();
     p->http_port = (u_short) i;
     i = GetInteger();
     p->icp.port = (u_short) i;
     if (strcmp(p->host, me) == 0) {
 	for (s = Config.Sockaddr.http; s; s = s->next) {
 	    if (p->http_port != ntohs(s->s.sin_port))
 		continue;
-	    debug(15, 0) ("parse_peer: Peer looks like myself: %s %s/%d/%d\n",
-		p->type, p->host, p->http_port, p->icp.port);
-	    self_destruct();
+            debug(15, 1) ("parse_peer: Peer looks like myself: Ignoring %s %s/%d/%d\n",
+                 neighborTypeStr(p), p->host, p->http_port, p->icp.port);
+            xfree( p->host );
+            memFree( p, MEM_PEER );
+            return;
 	}
     }
     while ((token = strtok(NULL, w_space))) {
 	if (!strcasecmp(token, "proxy-only")) {
 	    p->options.proxy_only = 1;
 	} else if (!strcasecmp(token, "no-query")) {
 	    p->options.no_query = 1;
 	} else if (!strcasecmp(token, "no-digest")) {
 	    p->options.no_digest = 1;
 	} else if (!strcasecmp(token, "multicast-responder")) {
 	    p->options.mcast_responder = 1;
 	} else if (!strncasecmp(token, "weight=", 7)) {
 	    p->weight = atoi(token + 7);
 	} else if (!strcasecmp(token, "closest-only")) {
 	    p->options.closest_only = 1;
 	} else if (!strncasecmp(token, "ttl=", 4)) {
 	    p->mcast.ttl = atoi(token + 4);
 	    if (p->mcast.ttl < 0)
 		p->mcast.ttl = 0;
 	    if (p->mcast.ttl > 128)

