diff --git a/meta-oe/classes/systemd.bbclass b/meta-oe/classes/systemd.bbclass
index 1e0f3e0..ecd3b8d 100644
--- a/meta-oe/classes/systemd.bbclass
+++ b/meta-oe/classes/systemd.bbclass
@@ -187,8 +187,27 @@ python populate_packages_prepend () {
 					raise bb.build.FuncFailed, "\n\nFor package %s SYSTEMD_SERVICE-entry %s does not exist" % \
 						(pkg_systemd, service)
 
+	# *-systemd packages get RDEPENDS to systemd and their base package
+	def systemd_add_rdepends(pkg_systemd):
+		pn_pkg = d.getVar('PN', 1)
+		# RDEPENDS_${pkg_systemd} += pkg_systemd_base systemd
+		rdepends = explode_deps(d.getVar('RDEPENDS_' + pkg_systemd, 1) or "")
+		if not 'systemd' in rdepends:
+			rdepends.append('systemd')
+		pkg_systemd_base = pkg_systemd.replace('-systemd', '')
+		# not rdepending myself
+		if pkg_systemd != pn_pkg:
+			#  avoid double entries
+			if not pkg_systemd_base in rdepends:
+				rdepends.append(pkg_systemd_base)
+			else:
+				bb.warn("%s: it is recommended to remove %s from RDEPENDS_%s since systemd.bbclass takes care" % \
+					(d.getVar('FILE'), pkg_systemd_base, pkg_systemd))
+		d.setVar('RDEPENDS_' + pkg_systemd, " " + " ".join(rdepends))
+
 
 	for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
 		systemd_generate_package_scripts(pkg_systemd)
+		systemd_add_rdepends(pkg_systemd)
 	systemd_check_services()
 }
