diff --git a/meta-oe/classes/systemd.bbclass b/meta-oe/classes/systemd.bbclass
index a2c8ddf..9690c18 100644
--- a/meta-oe/classes/systemd.bbclass
+++ b/meta-oe/classes/systemd.bbclass
@@ -154,7 +154,10 @@ python populate_packages_prepend () {
 
 	# check service-files and call systemd_add_files_and_parse for each entry
 	def systemd_check_services():
-		searchpaths = '/etc/systemd/system/ /lib/systemd/system/ /usr/lib/systemd/system/'
+		searchpaths = []
+		searchpaths.append(d.getVar('sysconfdir', True))
+		searchpaths.append(d.getVar('libdir', True))
+		searchpaths.append(d.getVar('base_libdir', True))
 		systemd_packages = d.getVar('SYSTEMD_PACKAGES', 1)
 		has_exactly_one_service = len(systemd_packages.split()) == 1
 		if has_exactly_one_service:
@@ -168,9 +171,9 @@ python populate_packages_prepend () {
 		for pkg_systemd in systemd_packages.split():
 			for service in get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd).split():
 				path_found = ''
-				for path in searchpaths.split():
-					if os.path.exists('${D}' + path + service):
-						path_found = path
+				for path in searchpaths:
+					if os.path.exists('${D}' + path + '/systemd/system/' + service):
+						path_found = path + '/systemd/system/'
 				if path_found != '':
 					systemd_add_files_and_parse(pkg_systemd, path_found, service, keys)
 				else:
