--- bgpctl/bgpctl.c.orig	2007-01-11 15:02:38.000000000 +1000
+++ bgpctl/bgpctl.c	2007-01-11 16:23:29.000000000 +1000
@@ -383,7 +383,7 @@
 void
 show_summary_head(void)
 {
-	printf("%-20s %-5s %-10s %-10s %-5s %-8s %s\n", "Neighbor", "AS",
+	printf("%-20s %-11s %-10s %-10s %-5s %-8s %s\n", "Neighbor", "AS",
 	    "MsgRcvd", "MsgSent", "OutQ", "Up/Down", "State/PrefixRcvd");
 }
 
@@ -399,8 +399,8 @@
 		s = fmt_peer(&p->conf, nodescr);
 		if (strlen(s) >= 20)
 			s[20] = 0;
-		printf("%-20s %5u %10llu %10llu %5u %-8s ",
-		    s, p->conf.remote_as,
+		printf("%-20s %5u.%5u %10llu %10llu %5u %-8s ",
+		       s, ((p->conf.remote_as >> 16) & 65535),(p->conf.remote_as & 65535),
 		    p->stats.msg_rcvd_open + p->stats.msg_rcvd_notification +
 		    p->stats.msg_rcvd_update + p->stats.msg_rcvd_keepalive +
 		    p->stats.msg_rcvd_rrefresh,
@@ -437,7 +437,7 @@
 	case IMSG_CTL_SHOW_NEIGHBOR:
 		p = imsg->data;
 		s = fmt_peer(&p->conf, nodescr);
-		printf("%s %u %s\n", s, p->conf.remote_as,
+		printf("%s %u.%u %s\n", s, ((p->conf.remote_as >> 16) & 65535), (p->conf.remote_as & 65535),
 		    statenames[p->state]);
 		free(s);
 		break;
@@ -478,7 +478,7 @@
 		if (p->conf.remote_as == 0 && p->conf.template)
 			printf("remote AS: accept any");
 		else
-			printf("remote AS %u", p->conf.remote_as);
+		  printf("remote AS %u.%u", ((p->conf.remote_as >> 16)  & 65535),(p->conf.remote_as & 65535));
 		if (p->conf.template)
 			printf(", Template");
 		if (p->conf.cloned)
@@ -1014,7 +1014,7 @@
 
 		asdata = imsg->data;
 		asdata += sizeof(struct ctl_show_rib);
-		if (aspath_asprint(&aspath, asdata, rib.aspath_len) == -1)
+		if (aspath_asprint(&aspath, asdata, rib.aspath_len,4) == -1)
 			err(1, NULL);
 		if (strlen(aspath) > 0)
 			printf("%s ", aspath);
