diff --git a/classes/obmc-phosphor-dbus-service.bbclass b/classes/obmc-phosphor-dbus-service.bbclass
index e6132fa..3277cdb 100644
--- a/classes/obmc-phosphor-dbus-service.bbclass
+++ b/classes/obmc-phosphor-dbus-service.bbclass
@@ -1,20 +1,45 @@
-# Common code for applications providing a D-Bus service.
-
-# Class users should define DBUS_SERVICES prior to including.
+# Utilities and shortcuts for recipes providing D-Bus services.
+# Variables:
+#  DBUS_PACKAGES ?= "${PN}"
+#    The list of packages to which files should be added.
+#
+#  DBUS_SERVICE_${PN} += "org.openbmc.Foo"
+#    A list of dbus service names.  The class will look for a dbus
+#    configuration file with the same name with .conf appended.
+#
+inherit dbus-dir
+inherit obmc-phosphor-utils
 
 RDEPENDS_${PN} += "dbus-perms"
+DBUS_PACKAGES ?= "${PN}"
+
+_INSTALL_DBUS_CONFIGS=""
+
 
 python() {
-        services = d.getVar('DBUS_SERVICES', True)
-        if services:
-                uris = " ".join( [ 'file://' + s + '.conf' for s in services.split() ] )
-                d.appendVar('SRC_URI', ' ' + uris + ' ')
+    searchpaths = d.getVar('FILESPATH', True)
+
+    def add_dbus_config(d, service, pkg):
+        set_append(d, 'SRC_URI', 'file://%s.conf' % service)
+        set_append(d, 'FILES_%s' % pkg, '%s%s.conf' \
+            % (d.getVar('dbus_system_confdir', True), service))
+        set_append(d, '_INSTALL_DBUS_CONFIGS', '%s.conf' % service)
+
+
+    for pkg in listvar_to_list(d, 'DBUS_PACKAGES'):
+        services = listvar_to_list(d, 'DBUS_SERVICE_%s' % pkg)
+
+        for service in services:
+            add_dbus_config(d, service, pkg)
 }
 
+
 do_install_append() {
-        # install the service configuration files
-        install -d ${D}${sysconfdir}/dbus-1/system.d
-        for s in ${DBUS_SERVICES}; do
-                install ${WORKDIR}/$s.conf ${D}${sysconfdir}/dbus-1/system.d/$s.conf
+        # install the dbus configuration files
+        [ -z "${_INSTALL_DBUS_CONFIGS}" ] || \
+                install -d ${D}${dbus_system_confdir}
+        for c in ${_INSTALL_DBUS_CONFIGS}; do
+                install -m 0644 ${WORKDIR}/$c \
+                        ${D}${dbus_system_confdir}$c
         done
 }
diff --git a/common/recipes-phosphor/dbus-perms/dbus-perms.bb b/common/recipes-phosphor/dbus-perms/dbus-perms.bb
index c7b7884..c929d74 100644
--- a/common/recipes-phosphor/dbus-perms/dbus-perms.bb
+++ b/common/recipes-phosphor/dbus-perms/dbus-perms.bb
@@ -7,6 +7,4 @@
 inherit obmc-phosphor-license
 inherit obmc-phosphor-dbus-service
 
-DBUS_SERVICES += " \
-        org.openbmc \
-        "
+DBUS_SERVICE_${PN} += "org.openbmc"
diff --git a/common/recipes-phosphor/dbus/obmc-mapper.bb b/common/recipes-phosphor/dbus/obmc-mapper.bb
index 3c3208d..12e5474 100644
--- a/common/recipes-phosphor/dbus/obmc-mapper.bb
+++ b/common/recipes-phosphor/dbus/obmc-mapper.bb
@@ -10,7 +10,7 @@
 inherit obmc-phosphor-systemd
 inherit setuptools
 
-DBUS_SERVICES += "org.openbmc.ObjectMapper"
+DBUS_SERVICE_${PN} += "org.openbmc.ObjectMapper"
 RDEPENDS_${PN} += " \
         python-xml \
         python-dbus \
diff --git a/common/recipes-phosphor/obmc-phosphor-example-pydbus/obmc-phosphor-example-pydbus.bb b/common/recipes-phosphor/obmc-phosphor-example-pydbus/obmc-phosphor-example-pydbus.bb
index 57e27cf..7e3e907 100644
--- a/common/recipes-phosphor/obmc-phosphor-example-pydbus/obmc-phosphor-example-pydbus.bb
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/obmc-phosphor-example-pydbus.bb
@@ -2,9 +2,7 @@
 DESCRIPTION = "Phosphor OpenBMC QEMU BSP example implementation."
 PR = "r1"
 
-DBUS_SERVICES = " \
-        org.openbmc.examples.PythonService \
-        "
+DBUS_SERVICE_${PN} += "org.openbmc.examples.PythonService"
 
 inherit obmc-phosphor-pydbus-service
 
diff --git a/common/recipes-phosphor/obmc-phosphor-example-sdbus/obmc-phosphor-example-sdbus.bb b/common/recipes-phosphor/obmc-phosphor-example-sdbus/obmc-phosphor-example-sdbus.bb
index 9a3018d..541aa79 100644
--- a/common/recipes-phosphor/obmc-phosphor-example-sdbus/obmc-phosphor-example-sdbus.bb
+++ b/common/recipes-phosphor/obmc-phosphor-example-sdbus/obmc-phosphor-example-sdbus.bb
@@ -2,9 +2,7 @@
 DESCRIPTION = "Phosphor OpenBMC QEMU BSP example implementation."
 PR = "r1"
 
-DBUS_SERVICES = " \
-        org.openbmc.examples.SDBusService \
-        "
+DBUS_SERVICE_${PN} += "org.openbmc.examples.SDBusService"
 
 S = "${WORKDIR}"
 SRC_URI += "file://Makefile \
