diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index 7770a538e9b204810d6ce03a332f9194e421330b..2a92d57315132a9fe993ba2e3f84fb575dfc9de4 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
 PKG_VERSION:=1.19.3
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
diff --git a/package/busybox/patches/911-date-k-flag.patch b/package/busybox/patches/911-date-k-flag.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c4f6db4db41a9b40c16415e386cca3f7f7d2a7a7
--- /dev/null
+++ b/package/busybox/patches/911-date-k-flag.patch
@@ -0,0 +1,83 @@
+--- a/coreutils/date.c
++++ b/coreutils/date.c
+@@ -123,6 +123,7 @@
+ //usage:	IF_FEATURE_DATE_ISOFMT(
+ //usage:     "\n	-D FMT		Use FMT for -d TIME conversion"
+ //usage:	)
++//usage:     "\n	-k		Set Kernel timezone from localtime and exit"
+ //usage:     "\n"
+ //usage:     "\nRecognized TIME formats:"
+ //usage:     "\n	hh:mm[:ss]"
+@@ -135,6 +136,7 @@
+ //usage:       "Wed Apr 12 18:52:41 MDT 2000\n"
+ 
+ #include "libbb.h"
++#include <sys/time.h>
+ #if ENABLE_FEATURE_DATE_NANO
+ # include <sys/syscall.h>
+ #endif
+@@ -145,8 +147,9 @@ enum {
+ 	OPT_UTC       = (1 << 2), /* u */
+ 	OPT_DATE      = (1 << 3), /* d */
+ 	OPT_REFERENCE = (1 << 4), /* r */
+-	OPT_TIMESPEC  = (1 << 5) * ENABLE_FEATURE_DATE_ISOFMT, /* I */
+-	OPT_HINT      = (1 << 6) * ENABLE_FEATURE_DATE_ISOFMT, /* D */
++	OPT_KERNELTZ  = (1 << 5), /* k */
++	OPT_TIMESPEC  = (1 << 6) * ENABLE_FEATURE_DATE_ISOFMT, /* I */
++	OPT_HINT      = (1 << 7) * ENABLE_FEATURE_DATE_ISOFMT, /* D */
+ };
+ 
+ static void maybe_set_utc(int opt)
+@@ -164,12 +167,15 @@ static const char date_longopts[] ALIGN1
+ 	/*	"universal\0" No_argument       "u" */
+ 		"date\0"      Required_argument "d"
+ 		"reference\0" Required_argument "r"
++		"set-kernel-tz\0" No_argument   "k"
+ 		;
+ #endif
+ 
+ int date_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+ int date_main(int argc UNUSED_PARAM, char **argv)
+ {
++	time_t tt;
++	struct timezone tz;
+ 	struct timespec ts;
+ 	struct tm tm_time;
+ 	char buf_fmt_dt2str[64];
+@@ -184,7 +190,7 @@ int date_main(int argc UNUSED_PARAM, cha
+ 	opt_complementary = "d--s:s--d"
+ 		IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
+ 	IF_LONG_OPTS(applet_long_options = date_longopts;)
+-	opt = getopt32(argv, "Rs:ud:r:"
++	opt = getopt32(argv, "Rs:ud:r:k"
+ 			IF_FEATURE_DATE_ISOFMT("I::D:"),
+ 			&date_str, &date_str, &filename
+ 			IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt));
+@@ -241,6 +247,27 @@ int date_main(int argc UNUSED_PARAM, cha
+ 	if (*argv)
+ 		bb_show_usage();
+ 
++	/* Setting of kernel timezone was requested */
++	if (opt & OPT_KERNELTZ) {
++		tt = time(NULL);
++		localtime_r(&tt, &tm_time);
++
++		/* workaround warp_clock() on first invocation */
++		memset(&tz, 0, sizeof(tz));
++		settimeofday(NULL, &tz);
++
++		memset(&tz, 0, sizeof(tz));
++		tz.tz_minuteswest = -(tm_time.tm_gmtoff / 60);
++
++		if (settimeofday(NULL, &tz))
++		{
++			bb_perror_msg("can't set kernel time zone");
++			return EXIT_FAILURE;
++		}
++
++		return EXIT_SUCCESS;
++	}
++
+ 	/* Now we have parsed all the information except the date format
+ 	 * which depends on whether the clock is being set or read */
+