diff --git a/src/ebt_igmpsnooping.c b/src/ebt_igmpsnooping.c
index fb5f48021aa3be900d75f467babbf25894f519bd..af76adf1221ef6bc4815397b4dc9a06951cddea2 100644
--- a/src/ebt_igmpsnooping.c
+++ b/src/ebt_igmpsnooping.c
@@ -29,6 +29,14 @@
 #include <linux/netfilter_bridge/ebt_igmpsnooping.h>
 #include <net/netfilter/br_netfilter.h>
 
+#ifndef fallthrough
+#if __has_attribute(__fallthrough__)
+# define fallthrough	__attribute__((__fallthrough__))
+#else
+# define fallthrough	do {} while (0)  /* fallthrough */
+#endif
+#endif
+
 static DEFINE_SPINLOCK(igmp_lock);
 
 static int igmp_snooping_show(struct seq_file *seq, void *v)
diff --git a/src/ebt_mldsnooping.c b/src/ebt_mldsnooping.c
index a2c48b6ee44ebdd85ab0c64d57409c793cc8be66..9e3ff2ea81b53ae6b261b6d54e689669b339061e 100644
--- a/src/ebt_mldsnooping.c
+++ b/src/ebt_mldsnooping.c
@@ -31,6 +31,14 @@
 #include <linux/netfilter_bridge/ebt_mldsnooping.h>
 #include <net/netfilter/br_netfilter.h>
 
+#ifndef fallthrough
+#if __has_attribute(__fallthrough__)
+# define fallthrough	__attribute__((__fallthrough__))
+#else
+# define fallthrough	do {} while (0)  /* fallthrough */
+#endif
+#endif
+
 static DEFINE_SPINLOCK(mld_lock);
 
 static int mld_snooping_show(struct seq_file *seq, void *v)