--- bgpd/printconf.c.orig	2007-01-12 09:54:36.000000000 +1000
+++ bgpd/printconf.c	2007-01-12 09:56:35.000000000 +1000
@@ -150,7 +150,7 @@
 	struct in_addr		 ina;
 	struct listen_addr	*la;
 
-	printf("AS %u\n", conf->as);
+	printf("AS %u.%u\n", ((conf->as >> 16) & 65535),(conf->as & 65535));
 	ina.s_addr = conf->bgpid;
 	printf("router-id %s\n", inet_ntoa(ina));
 	if (conf->holdtime)
@@ -237,7 +237,7 @@
 	if (p->descr[0])
 		printf("%s\tdescr \"%s\"\n", c, p->descr);
 	if (p->remote_as)
-		printf("%s\tremote-as %u\n", c, p->remote_as);
+	  printf("%s\tremote-as %u.%u\n", c, ((p->remote_as >> 16) & 65535),(p->remote_as & 65535));
 	if (p->distance > 1)
 		printf("%s\tmultihop %u\n", c, p->distance);
 	if (p->passive)
@@ -422,20 +422,20 @@
 
 	if (r->match.as.type) {
 		if (r->match.as.type == AS_ALL)
-			printf("AS %u ", r->match.as.as);
+		  printf("AS %u.%u ", ((r->match.as.as >> 16) & 65535) ,(r->match.as.as & 65535));
 		else if (r->match.as.type == AS_SOURCE)
-			printf("source-as %u ", r->match.as.as);
+		  printf("source-as %u.%u ", ((r->match.as.as >> 16) & 65535), (r->match.as.as & 65535));
 		else if (r->match.as.type == AS_TRANSIT)
-			printf("transit-as %u ", r->match.as.as);
+			printf("transit-as %u.%u ", ((r->match.as.as >> 16) & 65535), (r->match.as.as & 65535));
 		else
-			printf("unfluffy-as %u ", r->match.as.as);
+			printf("unfluffy-as %u.%u ", ((r->match.as.as >> 16) & 65535), (r->match.as.as & 65535));
 	}
 
 	if (r->match.community.as != 0) {
 		printf("community ");
-		if (r->match.community.as == COMMUNITY_ANY)
+		if (r->match.community.as == (unsigned int)COMMUNITY_ANY)
 			printf("*:");
-		else if (r->match.community.as == COMMUNITY_NEIGHBOR_AS)
+		else if (r->match.community.as == (unsigned int)COMMUNITY_NEIGHBOR_AS)
 			printf("neighbor-as:");
 		else
 			printf("%d:", r->match.community.as);
