diff --git a/modules b/modules
index 6f285db263c20ae0bb148dde73e4df677f14db36..bf09e3ab7d0a923057ef88b362a7f8cc338795f5 100644
--- a/modules
+++ b/modules
@@ -1,7 +1,8 @@
 GLUON_FEEDS='openwrt gluon routing luci'
 
 LEDE_REPO=git://git.lede-project.org/source.git
-LEDE_COMMIT=b9a408c2b49ccfa0e906bda00ef77f4002e401fd
+LEDE_BRANCH=lede-17.01
+LEDE_COMMIT=02515f018799496a607216b7b765a1a60c2e22be
 
 PACKAGES_OPENWRT_REPO=git://github.com/openwrt/packages.git
 PACKAGES_OPENWRT_COMMIT=ee211f94ec292f7ec3d563fcbc147359b6cf8290
diff --git a/patches/lede/0001-build-move-STAGING_DIR_HOSTPKG-and-BUILD_DIR_HOST-back-to-a-common-directory-for-all-targets.patch b/patches/lede/0001-build-move-STAGING_DIR_HOSTPKG-and-BUILD_DIR_HOST-back-to-a-common-directory-for-all-targets.patch
index 3aecb9f523e94ff5253beb28d8b2186502fc504a..860e7a7139a7f28549460be592fd27cef59115e6 100644
--- a/patches/lede/0001-build-move-STAGING_DIR_HOSTPKG-and-BUILD_DIR_HOST-back-to-a-common-directory-for-all-targets.patch
+++ b/patches/lede/0001-build-move-STAGING_DIR_HOSTPKG-and-BUILD_DIR_HOST-back-to-a-common-directory-for-all-targets.patch
@@ -47,10 +47,10 @@ index 5f572e9d7475e807ea56713ee2069dc98f5c1f6b..80c1b05937410cb9fce20e7b75957748
  
  define Build/Configure/Default
 diff --git a/include/host-build.mk b/include/host-build.mk
-index 5cfbdeba5138c4362f82b7ae86b910a1f41f082a..fee7c6ce8fca6160a7055a8ccb9c0ebd0759032b 100644
+index 70bf6e5a399615edb91edfae3c43a93504d7b5d8..6c2f91581b895bda1ee9f2ee94afc2e5c06de380 100644
 --- a/include/host-build.mk
 +++ b/include/host-build.mk
-@@ -115,7 +115,7 @@ ifneq ($(if $(HOST_QUILT),,$(CONFIG_AUTOREBUILD)),)
+@@ -122,7 +122,7 @@ ifneq ($(if $(HOST_QUILT),,$(CONFIG_AUTOREBUILD)),)
  endif
  
  define Host/Exports/Default
diff --git a/patches/lede/0009-include-rootfs.mk-keep-Require-User-lines-with-CONFIG_CLEAN_IPKG.patch b/patches/lede/0009-include-rootfs.mk-keep-Require-User-lines-with-CONFIG_CLEAN_IPKG.patch
deleted file mode 100644
index 45c1fa72bb51ace7acac3f65e08c99d2fdda7318..0000000000000000000000000000000000000000
--- a/patches/lede/0009-include-rootfs.mk-keep-Require-User-lines-with-CONFIG_CLEAN_IPKG.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Matthias Schiffer <mschiffer@universe-factory.net>
-Date: Tue, 24 Jan 2017 17:00:43 +0100
-Subject: include/rootfs.mk: keep Require-User lines with CONFIG_CLEAN_IPKG
-
-Require-User is handled by /etc/uci-defaults/13_fix_group_user on first
-boot, so we need to keep these when removing all opkg data with
-CONFIG_CLEAN_IPKG.
-
-Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
-
-diff --git a/include/rootfs.mk b/include/rootfs.mk
-index 90d70a11f2e775c83b9907ec1f296c0e4d535ad6..c014b1d14ab0963687417809431abc0bf314830c 100644
---- a/include/rootfs.mk
-+++ b/include/rootfs.mk
-@@ -47,6 +47,14 @@ opkg = \
- 
- TARGET_DIR_ORIG := $(TARGET_ROOTFS_DIR)/root.orig-$(BOARD)
- 
-+ifdef CONFIG_CLEAN_IPKG
-+  define clean_ipkg
-+	-find $(1)/usr/lib/opkg -type f -and -not -name '*.control' | $(XARGS) rm -rf
-+	-sed -i -ne '/^Require-User: /p' $(1)/usr/lib/opkg/info/*.control
-+	-find $(1)/usr/lib/opkg -empty | $(XARGS) rm -rf
-+  endef
-+endif
-+
- define prepare_rootfs
- 	@if [ -d $(TOPDIR)/files ]; then \
- 		$(call file_copy,$(TOPDIR)/files/.,$(1)); \
-@@ -75,6 +83,6 @@ define prepare_rootfs
- 	rm -f $(1)/usr/lib/opkg/lists/*
- 	rm -f $(1)/usr/lib/opkg/info/*.postinst*
- 	rm -f $(1)/usr/lib/opkg/info/*.prerm*
--	$(if $(CONFIG_CLEAN_IPKG),rm -rf $(1)/usr/lib/opkg)
-+	$(call clean_ipkg,$(1))
- 	$(call mklibs,$(1))
- endef
diff --git a/patches/lede/0011-netifd-device-add-veth-support.patch b/patches/lede/0009-netifd-device-add-veth-support.patch
similarity index 100%
rename from patches/lede/0011-netifd-device-add-veth-support.patch
rename to patches/lede/0009-netifd-device-add-veth-support.patch
diff --git a/patches/lede/0010-base-files-fix-user-creation-on-sysupgrade-with-few-opkg-control-files.patch b/patches/lede/0010-base-files-fix-user-creation-on-sysupgrade-with-few-opkg-control-files.patch
deleted file mode 100644
index 43b0b97f058ae4606e2392ffdcfe8bd311feb5c5..0000000000000000000000000000000000000000
--- a/patches/lede/0010-base-files-fix-user-creation-on-sysupgrade-with-few-opkg-control-files.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Matthias Schiffer <mschiffer@universe-factory.net>
-Date: Tue, 24 Jan 2017 18:55:13 +0100
-Subject: base-files: fix user creation on sysupgrade with few opkg control files
-
-If only a single opkg control file exists (which can happen with
-CONFIG_CLEAN_IPKG), grep would not print the file name by default. Instead
-of forcing it using -H, we just switch to -l (print only file names) and
-get rid of the cut.
-
-Add -s to suppress an error message when no control files exist.
-
-Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
-
-diff --git a/package/base-files/files/etc/uci-defaults/13_fix_group_user b/package/base-files/files/etc/uci-defaults/13_fix_group_user
-index deade5bbd1876cd3f009d4c0b18be258c3bf36d1..e6dae2419f65a830ebd039fbbfa0fd22d1a2d0a1 100644
---- a/package/base-files/files/etc/uci-defaults/13_fix_group_user
-+++ b/package/base-files/files/etc/uci-defaults/13_fix_group_user
-@@ -2,7 +2,7 @@
- 
- . /lib/functions.sh
- 
--for file in `grep Require-User /usr/lib/opkg/info/*.control | cut -d: -f1`; do
-+for file in `grep -sl Require-User /usr/lib/opkg/info/*.control`; do
- 	file="${file##*/}"
- 	file="${file%.control}"
- 	add_group_and_user "${file}"