diff --git a/SOURCES/0417-load-fragment-fix-parsing-values-in-bytes-and-preven.patch b/SOURCES/0417-load-fragment-fix-parsing-values-in-bytes-and-preven.patch
new file mode 100644
index 0000000..1505a7f
--- /dev/null
+++ b/SOURCES/0417-load-fragment-fix-parsing-values-in-bytes-and-preven.patch
@@ -0,0 +1,51 @@
+From d8edaa8a9e542a8bcd92a6a2b2ce9103dc8b9074 Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <msekleta@redhat.com>
+Date: Fri, 18 Nov 2016 14:00:57 +0100
+Subject: [PATCH] load-fragment: fix parsing values in bytes and prevent
+ returning -ERANGE incorrectly
+
+We didn't port our code base to use uint64_t instead of off_t as
+upstream did. RLIMIT_INIFINITY is -1ULL and if we cast to off_t (64 bit
+signed int on arches we support) then we get -1 and that is always
+smaller than correct value returned by parse_size().
+
+To make code changes as minimal as possible (i.e. not port everything
+to uint64_t) let's cast off_t to uint64_t and not the other way
+around.
+
+RHEL-only
+
+Resolves: #1396277
+---
+ src/core/load-fragment.c  | 2 +-
+ src/test/test-unit-file.c | 4 ++++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
+index 2f6209e..83b6e7e 100644
+--- a/src/core/load-fragment.c
++++ b/src/core/load-fragment.c
+@@ -1105,7 +1105,7 @@ static int rlim_parse_size(const char *val, rlim_t *res) {
+                 off_t u;
+ 
+                 r = parse_size(val, 1024, &u);
+-                if (r >= 0 && u >= (off_t) RLIM_INFINITY)
++                if (r >= 0 && (uint64_t) u >= RLIM_INFINITY)
+                         r = -ERANGE;
+                 if (r == 0)
+                         *res = (rlim_t) u;
+diff --git a/src/test/test-unit-file.c b/src/test/test-unit-file.c
+index 8acf071..0384305 100644
+--- a/src/test/test-unit-file.c
++++ b/src/test/test-unit-file.c
+@@ -554,6 +554,10 @@ static void test_config_parse_rlimit(void) {
+         assert_se(rl[RLIMIT_NOFILE]->rlim_cur == 55);
+         assert_se(rl[RLIMIT_NOFILE]->rlim_cur == rl[RLIMIT_NOFILE]->rlim_max);
+ 
++        assert_se(config_parse_bytes_limit(NULL, "fake", 1, "section", 1, "LimitSTACK", RLIMIT_STACK, "55", rl, NULL) >= 0);
++        assert_se(rl[RLIMIT_STACK]);
++        assert_se(rl[RLIMIT_STACK]->rlim_cur == 55);
++        assert_se(rl[RLIMIT_STACK]->rlim_cur == rl[RLIMIT_STACK]->rlim_max);
+ 
+         assert_se(config_parse_limit(NULL, "fake", 1, "section", 1, "LimitNOFILE", RLIMIT_NOFILE, "55:66", rl, NULL) >= 0);
+         assert_se(rl[RLIMIT_NOFILE]);
diff --git a/SOURCES/0418-core-fix-assertion-check.patch b/SOURCES/0418-core-fix-assertion-check.patch
new file mode 100644
index 0000000..d23c6c7
--- /dev/null
+++ b/SOURCES/0418-core-fix-assertion-check.patch
@@ -0,0 +1,26 @@
+From 5e5f05f7f8ea6beb1f9fd7ac7586798c33e8ba6f Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart@poettering.net>
+Date: Tue, 16 Feb 2016 13:18:36 +0100
+Subject: [PATCH] core: fix assertion check
+
+Fixes: #2632
+
+Cherry-picked from: 3f51aec8647fe13f4b1e46b2f75ff635403adf91
+Resolves: #1396312
+---
+ src/core/timer.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/timer.c b/src/core/timer.c
+index 972dd73..f318dc6 100644
+--- a/src/core/timer.c
++++ b/src/core/timer.c
+@@ -321,7 +321,7 @@ static void add_random(Timer *t, usec_t *v) {
+         usec_t add;
+ 
+         assert(t);
+-        assert(*v);
++        assert(v);
+ 
+         if (t->random_usec == 0)
+                 return;
diff --git a/SPECS/systemd.spec b/SPECS/systemd.spec
index 054ffde..cdc2695 100644
--- a/SPECS/systemd.spec
+++ b/SPECS/systemd.spec
@@ -7,7 +7,7 @@
 Name:           systemd
 Url:            http://www.freedesktop.org/wiki/Software/systemd
 Version:        219
-Release:        30%{?dist}.6
+Release:        30%{?dist}.7
 # For a breakdown of the licensing, see README
 License:        LGPLv2+ and MIT and GPLv2+
 Summary:        A System and Service Manager
@@ -451,6 +451,8 @@ Patch0413: 0413-pid1-more-informative-error-message-for-ignored-noti.patch
 Patch0414: 0414-manager-219-needs-u-id-in-log_unit_debug.patch
 Patch0415: 0415-mtd_probe-add-include-for-stdint.patch
 Patch0416: 0416-virt-add-possibility-to-skip-the-check-for-chroot.patch
+Patch0417: 0417-load-fragment-fix-parsing-values-in-bytes-and-preven.patch
+Patch0418: 0418-core-fix-assertion-check.patch
 
 
 %global num_patches %{lua: c=0; for i,p in ipairs(patches) do c=c+1; end; print(c);}
@@ -1459,6 +1461,10 @@ fi
 %{_mandir}/man8/systemd-resolved.*
 
 %changelog
+* Tue Nov 29 2016 Lukas Nykryn <lnykryn@redhat.com> - 219-30.7
+- load-fragment: fix parsing values in bytes and prevent returning -ERANGE incorrectly (#1396277)
+- core: fix assertion check (#1396312)
+
 * Mon Nov 07 2016 Lukáš Nykrýn <lnykryn@redhat.com> - 219-30.6
 - better version of vmware trigger