diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog
index 00072cc..10ccdf4 100644
--- a/bgpd/ChangeLog
+++ b/bgpd/ChangeLog
@@ -1,5 +1,11 @@
 2005-02-01 Akihiro Mizutani <mizutani@net-chef.net>
 
+	* bgp_attr.c, bgp_snmp.c, bgp_vty.c, bgpd.[ch]: Remove support for old
+	  draft - ie. "neighbor version 4-" commands. Preserve dummy "neighbor
+	  version" command as deprecated.
+
+2005-02-01 Akihiro Mizutani <mizutani@net-chef.net>
+
 	* bgpd.[ch], bgp_vty.c, bgp_route.c: "Restart session after
 	  maximum-prefix limit" feature support.
 
diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c
index cad9168..c702946 100644
--- a/bgpd/bgp_attr.c
+++ b/bgpd/bgp_attr.c
@@ -994,14 +994,6 @@
       stream_forward (s, (snpa_len + 1) >> 1);
     }
   
-  /* If peer is based on old draft-00. I read NLRI length from the
-     packet. */
-  if (peer->version == BGP_VERSION_MP_4_DRAFT_00)
-    {
-      bgp_size_t nlri_total_len;
-      nlri_total_len = stream_getw (s);
-    }
-
   nlri_len = lim - stream_pnt (s);
  
   if (safi != BGP_SAFI_VPNV4)
@@ -1538,7 +1530,6 @@
   if (p->family == AF_INET6)
     {
       unsigned long sizep;
-      unsigned long draftp = 0;
 
       stream_putc (s, BGP_ATTR_FLAG_OPTIONAL);
       stream_putc (s, BGP_ATTR_MP_REACH_NLRI);
@@ -1560,29 +1551,17 @@
       /* SNPA */
       stream_putc (s, 0);
 
-      /* In case of old draft BGP-4+. */
-      if (peer->version == BGP_VERSION_MP_4_DRAFT_00)
-	{
-	  draftp = stream_get_putp (s);
-	  stream_putw (s, 0);
-	}
-      
       /* Prefix write. */
       stream_put_prefix (s, p);
 
       /* Set MP attribute length. */
       stream_putc_at (s, sizep, (stream_get_putp (s) - sizep) - 1);
-
-      /* In case of old draft BGP-4+. */
-      if (peer->version == BGP_VERSION_MP_4_DRAFT_00)
-	stream_putw_at (s, draftp, (stream_get_putp (s) - draftp) - 2);
     }
 #endif /* HAVE_IPV6 */
 
   if (p->family == AF_INET && safi == SAFI_MULTICAST)
     {
       unsigned long sizep;
-      unsigned long draftp = 0;
 
       stream_putc (s, BGP_ATTR_FLAG_OPTIONAL);
       stream_putc (s, BGP_ATTR_MP_REACH_NLRI);
@@ -1597,28 +1576,16 @@
       /* SNPA */
       stream_putc (s, 0);
 
-      /* In case of old draft BGP-4+. */
-      if (peer->version == BGP_VERSION_MP_4_DRAFT_00)
-	{
-	  draftp = stream_get_putp (s);
-	  stream_putw (s, 0);
-	}
-      
       /* Prefix write. */
       stream_put_prefix (s, p);
 
       /* Set MP attribute length. */
       stream_putc_at (s, sizep, (stream_get_putp (s) - sizep) - 1);
-
-      /* In case of old draft BGP-4+. */
-      if (peer->version == BGP_VERSION_MP_4_DRAFT_00)
-	stream_putw_at (s, draftp, (stream_get_putp (s) - draftp) - 2);
     }
 
   if (p->family == AF_INET && safi == SAFI_MPLS_VPN)
     {
       unsigned long sizep;
-      unsigned long draftp = 0;
 
       stream_putc (s, BGP_ATTR_FLAG_OPTIONAL);
       stream_putc (s, BGP_ATTR_MP_REACH_NLRI);
@@ -1635,13 +1602,6 @@
       /* SNPA */
       stream_putc (s, 0);
 
-      /* In case of old draft BGP-4+. */
-      if (peer->version == BGP_VERSION_MP_4_DRAFT_00)
-	{
-	  draftp = stream_get_putp (s);
-	  stream_putw (s, 0);
-	}
-      
       /* Tag, RD, Prefix write. */
       stream_putc (s, p->prefixlen + 88);
       stream_put (s, tag, 3);
@@ -1650,10 +1610,6 @@
 
       /* Set MP attribute length. */
       stream_putc_at (s, sizep, (stream_get_putp (s) - sizep) - 1);
-
-      /* In case of old draft BGP-4+. */
-      if (peer->version == BGP_VERSION_MP_4_DRAFT_00)
-	stream_putw_at (s, draftp, (stream_get_putp (s) - draftp) - 2);
     }
 
   /* Extended Communities attribute. */
diff --git a/bgpd/bgp_snmp.c b/bgpd/bgp_snmp.c
index 228060a..f2d554d 100644
--- a/bgpd/bgp_snmp.c
+++ b/bgpd/bgp_snmp.c
@@ -476,7 +476,7 @@
 	return SNMP_INTEGER (BGP_PeerAdmin_start);
       break;
     case BGPPEERNEGOTIATEDVERSION:
-      return SNMP_INTEGER (peer->version);
+      return SNMP_INTEGER (BGP_VERSION_4);
       break;
     case BGPPEERLOCALADDR:
       if (peer->su_local)
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index 02f8e4c..dcca1a3 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -286,6 +286,17 @@
 {
   return CMD_SUCCESS;
 }
+
+DEFUN_DEPRECATED (neighbor_version,
+		  neighbor_version_cmd,
+		  NEIGHBOR_CMD "version (4|4-)",
+		  NEIGHBOR_STR
+		  NEIGHBOR_ADDR_STR
+		  "Set the BGP version to match a neighbor\n"
+		  "Neighbor's BGP version\n")
+{
+  return CMD_SUCCESS;
+}
 
 /* "router bgp" commands. */
 DEFUN (router_bgp, 
@@ -3091,56 +3102,6 @@
        "Minimum interval between sending BGP routing updates\n"
        "time in seconds\n")
 
-int
-peer_version_vty (struct vty *vty, const char *ip_str, const char *str)
-{
-  int ret;
-  struct peer *peer;
-  int version = BGP_VERSION_4;
-
-  peer = peer_lookup_vty (vty, ip_str);
-  if (! peer)
-    return CMD_WARNING;
-
-  /* BGP version string check. */
-  if (str)
-    {
-      if (strcmp (str, "4") == 0)
-	version = BGP_VERSION_4;
-      else if (strcmp (str, "4-") == 0)
-	version = BGP_VERSION_MP_4_DRAFT_00;
-
-      ret = peer_version_set (peer, version);
-    }
-  else
-    ret = peer_version_unset (peer);
-
-  return CMD_SUCCESS;
-}
-
-DEFUN (neighbor_version,
-       neighbor_version_cmd,
-       NEIGHBOR_CMD "version (4|4-)",
-       NEIGHBOR_STR
-       NEIGHBOR_ADDR_STR
-       "Neighbor's BGP version\n"
-       "Border Gateway Protocol 4\n"
-       "Multiprotocol Extensions for BGP-4(Old Draft)\n")
-{
-  return peer_version_vty (vty, argv[0], argv[1]);
-}
-
-DEFUN (no_neighbor_version,
-       no_neighbor_version_cmd,
-       NO_NEIGHBOR_CMD "version",
-       NO_STR
-       NEIGHBOR_STR
-       NEIGHBOR_ADDR_STR
-       "Neighbor's BGP version\n")
-{
-  return peer_version_vty (vty, argv[0], NULL);
-}
-
 /* neighbor interface */
 int
 peer_interface_vty (struct vty *vty, const char *ip_str, const char *str)
@@ -6438,15 +6399,7 @@
 	  else
 	    vty_out (vty, "%*s", len, " ");
 
-	  switch (peer->version) 
-	    {
-	    case BGP_VERSION_4:
-	      vty_out (vty, "4 ");
-	      break;
-	    case BGP_VERSION_MP_4_DRAFT_00:
-	      vty_out (vty, "4-");
-	      break;
-	    }
+	  vty_out (vty, "4 ");
 
 	  vty_out (vty, "%5d %7d %7d %8d %4d %4ld ",
 		   peer->as,
@@ -6982,8 +6935,6 @@
 
   /* BGP Version. */
   vty_out (vty, "  BGP version 4");
-  if (p->version == BGP_VERSION_MP_4_DRAFT_00)
-    vty_out (vty, "(with draft-00 verion of multiporotocol extension)");
   vty_out (vty, ", remote router ID %s%s", 
 	   inet_ntop (AF_INET, &p->remote_id, buf1, BUFSIZ),
 	   VTY_NEWLINE);
@@ -7615,15 +7566,7 @@
   else
     vty_out (vty, "%*s", len, " ");
 
-  switch (rsclient->version)
-    {
-      case BGP_VERSION_4:
-        vty_out (vty, "4 ");
-        break;
-      case BGP_VERSION_MP_4_DRAFT_00:
-        vty_out (vty, "4-");
-        break;
-    }
+  vty_out (vty, "4 ");
 
   vty_out (vty, "%5d ", rsclient->as);
 
@@ -8933,7 +8876,6 @@
 
   /* "neighbor version" commands. */
   install_element (BGP_NODE, &neighbor_version_cmd);
-  install_element (BGP_NODE, &no_neighbor_version_cmd);
 
   /* "neighbor interface" commands. */
   install_element (BGP_NODE, &neighbor_interface_cmd);
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 097b235..1cce8c5 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -705,7 +705,6 @@
   peer->v_asorig = BGP_DEFAULT_ASORIGINATE;
   peer->status = Idle;
   peer->ostatus = Idle;
-  peer->version = BGP_VERSION_4;
   peer->weight = 0;
 
   /* Set default flags.  */
@@ -3061,24 +3060,6 @@
   return 0;
 }
 
-int
-peer_version_set (struct peer *peer, int version)
-{
-  if (version != BGP_VERSION_4 && version != BGP_VERSION_MP_4_DRAFT_00)
-    return BGP_ERR_INVALID_VALUE;
-
-  peer->version = version;
-
-  return 0;
-}
-
-int
-peer_version_unset (struct peer *peer)
-{
-  peer->version = BGP_VERSION_4;
-  return 0;
-}
-
 /* neighbor interface */
 int
 peer_interface_set (struct peer *peer, const char *str)
@@ -4350,11 +4331,6 @@
 		   sockunion2str (peer->update_source, buf, SU_ADDRSTRLEN),
 		   VTY_NEWLINE);
 
-      /* BGP version print. */
-      if (peer->version == BGP_VERSION_MP_4_DRAFT_00)
-	vty_out (vty, " neighbor %s version %s%s",
-		 addr,"4-", VTY_NEWLINE);
-
       /* advertisement-interval */
       if (CHECK_FLAG (peer->config, PEER_CONFIG_ROUTEADV))
 	vty_out (vty, " neighbor %s advertisement-interval %d%s",
diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h
index 7a0707c..6fb66d3 100644
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
@@ -288,7 +288,6 @@
   char *update_if;
   union sockunion *update_source;
   struct zlog *log;
-  u_char version;		/* Peer BGP version. */
 
   union sockunion *su_local;	/* Sockunion of local address.  */
   union sockunion *su_remote;	/* Sockunion of remote address.  */
@@ -520,7 +519,6 @@
 
 /* BGP versions.  */
 #define BGP_VERSION_4		                 4
-#define BGP_VERSION_MP_4_DRAFT_00               40
 
 /* Default BGP port number.  */
 #define BGP_PORT_DEFAULT                       179
@@ -867,9 +865,6 @@
 int peer_advertise_interval_set (struct peer *, u_int32_t);
 int peer_advertise_interval_unset (struct peer *);
 
-int peer_version_set (struct peer *, int);
-int peer_version_unset (struct peer *);
-
 int peer_interface_set (struct peer *, const char *);
 int peer_interface_unset (struct peer *);
 
