diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog
index 686a642..826b930 100644
--- a/bgpd/ChangeLog
+++ b/bgpd/ChangeLog
@@ -1,3 +1,8 @@
+2005-05-25 Hasso Tepper <hasso at quagga.net>
+
+	* bgpd.c: Fix obvious (routeserver patch) merge error. This makes "no
+	  neighbor x.x.x.x routemap [export|import] commands work again.
+
 2005-05-23 Paul Jakma <paul@dishone.st>
 
 	* bgp_routemap.c: add semi-colons to VTY_GET_* to match vty.h change
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 881a3c7..c199568 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -3642,12 +3642,10 @@
   if (! peer->afc[afi][safi])
     return BGP_ERR_PEER_INACTIVE;
 
-  if (direct != RMAP_IN && direct != RMAP_OUT &&
-      direct != RMAP_IMPORT && direct != RMAP_EXPORT)
+  if (direct != FILTER_IN && direct != FILTER_OUT)
     return BGP_ERR_INVALID_VALUE;
 
-  if ( (direct == RMAP_OUT || direct == RMAP_IMPORT)
-      && peer_is_group_member (peer, afi, safi))
+  if (direct == FILTER_OUT && peer_is_group_member (peer, afi, safi))
     return BGP_ERR_INVALID_FOR_PEER_GROUP_MEMBER;
 
   filter = &peer->filter[afi][safi];
@@ -3803,10 +3801,12 @@
   if (! peer->afc[afi][safi])
     return BGP_ERR_PEER_INACTIVE;
 
-  if (direct != FILTER_IN && direct != FILTER_OUT)
+  if (direct != RMAP_IN && direct != RMAP_OUT &&
+      direct != RMAP_IMPORT && direct != RMAP_EXPORT)
     return BGP_ERR_INVALID_VALUE;
 
-  if (direct == FILTER_OUT && peer_is_group_member (peer, afi, safi))
+  if ( (direct == RMAP_OUT || direct == RMAP_IMPORT)
+      && peer_is_group_member (peer, afi, safi))
     return BGP_ERR_INVALID_FOR_PEER_GROUP_MEMBER;
 
   filter = &peer->filter[afi][safi];
