diff --git a/package/network/utils/iptables/Makefile b/package/network/utils/iptables/Makefile
index c510700b9fad83e701289aa2bed8fd12abf161f1..879d786e8f0c3b295c0eda0385b42a0890ab64cb 100644
--- a/package/network/utils/iptables/Makefile
+++ b/package/network/utils/iptables/Makefile
@@ -9,15 +9,15 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=iptables
-PKG_VERSION:=1.4.19.1
-PKG_RELEASE:=2
+PKG_VERSION:=1.4.20
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.netfilter.org/projects/iptables/files \
 	ftp://ftp.be.netfilter.org/pub/netfilter/iptables/ \
 	ftp://ftp.de.netfilter.org/pub/netfilter/iptables/ \
 	ftp://ftp.no.netfilter.org/pub/netfilter/iptables/
-PKG_MD5SUM:=be97ce9007fa42c867901b496c935a0a
+PKG_MD5SUM:=387b92d3efcf4f07fe31c3bf0f1d18f5
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
diff --git a/package/network/utils/iptables/patches/400-lenient-restore.patch b/package/network/utils/iptables/patches/400-lenient-restore.patch
index 696d733225765f5b87ec453e06e17318a7be38c9..c9c490602bdec6e1c493479ecfe66ef34b5f7d54 100644
--- a/package/network/utils/iptables/patches/400-lenient-restore.patch
+++ b/package/network/utils/iptables/patches/400-lenient-restore.patch
@@ -77,10 +77,10 @@ Index: iptables-1.4.18/iptables/ip6tables-restore.c
  				DEBUGP("argv[%u]: %s\n", a, newargv[a]);
  
 -			ret = do_command6(newargc, newargv,
--					 &newargv[2], &handle);
+-					 &newargv[2], &handle, true);
 +			if (!setjmp(jmp))
 +				ret = do_command6(newargc, newargv,
-+						 &newargv[2], &handle);
++						 &newargv[2], &handle, true);
 +			else
 +				ret = 1;
  
@@ -165,10 +165,10 @@ Index: iptables-1.4.18/iptables/iptables-restore.c
  				DEBUGP("argv[%u]: %s\n", a, newargv[a]);
  
 -			ret = do_command4(newargc, newargv,
--					 &newargv[2], &handle);
+-					 &newargv[2], &handle, true);
 +			if (!setjmp(jmp))
 +				ret = do_command4(newargc, newargv,
-+						 &newargv[2], &handle);
++						 &newargv[2], &handle, true);
 +			else
 +				ret = 1;
  
diff --git a/package/network/utils/iptables/patches/410-add_reap_again.patch b/package/network/utils/iptables/patches/410-add_reap_again.patch
deleted file mode 100644
index 0bb40fbcf0fafe9368ae7216218921f6f9742291..0000000000000000000000000000000000000000
--- a/package/network/utils/iptables/patches/410-add_reap_again.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: iptables-1.4.19.1/extensions/libxt_recent.c
-===================================================================
---- iptables-1.4.19.1.orig/extensions/libxt_recent.c
-+++ iptables-1.4.19.1/extensions/libxt_recent.c
-@@ -63,6 +63,8 @@ static const struct xt_option_entry rece
- 	 .excl = F_ANY_OP, .flags = XTOPT_INVERT},
- 	{.name = "seconds", .id = O_SECONDS, .type = XTTYPE_UINT32,
- 	 .flags = XTOPT_PUT, XTOPT_POINTER(s, seconds)},
-+	{.name = "reap", .id = O_REAP, .type = XTTYPE_NONE,
-+	 .also = F_SECONDS },
- 	{.name = "hitcount", .id = O_HITCOUNT, .type = XTTYPE_UINT32,
- 	 .flags = XTOPT_PUT, XTOPT_POINTER(s, hit_count)},
- 	{.name = "rttl", .id = O_RTTL, .type = XTTYPE_NONE,