diff -Naur linux-2.4.10/net/bridge/br_input.c linux-2.4.10-bridge/net/bridge/br_input.c
--- linux-2.4.10/net/bridge/br_input.c	Wed Aug 15 10:54:39 2001
+++ linux-2.4.10-bridge/net/bridge/br_input.c	Mon Sep 24 14:21:40 2001
@@ -4,6 +4,7 @@
  *
  *	Authors:
  *	Lennert Buytenhek		<buytenh@gnu.org>
+ *      Arne Fitzenreiter (MAC Filter)  <arne@fitzenreiter.de>
  *
  *	$Id: br_input.c,v 1.9 2001/08/14 22:05:57 davem Exp $
  *
@@ -50,11 +51,14 @@
 {
 	struct net_bridge *br;
 	unsigned char *dest;
+	unsigned char *src;
+	
 	struct net_bridge_fdb_entry *dst;
 	struct net_bridge_port *p;
 	int passedup;
 
 	dest = skb->mac.ethernet->h_dest;
+	src = skb->mac.ethernet->h_source;
 
 	p = skb->dev->br_port;
 	br = p->br;
@@ -63,6 +67,22 @@
 	if (!(br->dev.flags & IFF_UP) ||
 	    p->state == BR_STATE_DISABLED)
 		goto freeandout;
+
+	if (br->flt_dest) {
+		if (br->flt_dest_allow) {
+			if (br_ftdb_get(br,dest)) goto freeandout;
+		} else {
+			if (! br_ftdb_get(br,dest)) goto freeandout;
+		}
+	}
+
+	if (br->flt_src) {
+		if (br->flt_src_allow) {
+			if (br_ftdb_get(br,src)) goto freeandout;
+		} else {
+			if (! br_ftdb_get(br,src)) goto freeandout;
+		}
+	}
 
 	if (br->dev.flags & IFF_PROMISC) {
 		struct sk_buff *skb2;
