diff --git a/meta-systemd/conf/layer.conf b/meta-systemd/conf/layer.conf
index 3310abc..e8fd5ca 100644
--- a/meta-systemd/conf/layer.conf
+++ b/meta-systemd/conf/layer.conf
@@ -12,7 +12,21 @@
 BBPATH .= ":${LAYERDIR}"
 
 # We have a recipes directory, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/*/recipes-*/*/*.bbappend"
+BBFILES += "\
+  ${LAYERDIR}/recipes-*/*/*.bb \
+  ${LAYERDIR}/oe-core/recipes-*/*.bbappend \
+  ${LAYERDIR}/meta-oe/recipes-*/*/*.bbappend \
+  ${@base_contains('BBFILE_COLLECTIONS', 'systemd-layer',\
+                   '', '${LAYERDIR}/invalid.bb', d)} \
+  ${@base_contains('BBFILE_COLLECTIONS', 'gnome-layer',\
+                   '${LAYERDIR}/meta-gnome/recipes-*/*/*.bbappend', '', d)} \
+  ${@base_contains('BBFILE_COLLECTIONS', 'efl-layer',\
+                   '${LAYERDIR}/meta-efl/recipes-*/*/*.bbappend', '', d)} \
+  ${@base_contains('BBFILE_COLLECTIONS', 'multimedia-layer',\
+                   '${LAYERDIR}/meta-multimedia/recipes-*/*/*.bbappend', '', d)} \
+  ${@base_contains('BBFILE_COLLECTIONS', 'networking',\
+                   '${LAYERDIR}/meta-networking/recipes-*/*/*.bbappend', '', d)} \
+"
 
 BBFILE_COLLECTIONS += "systemd-layer"
 BBFILE_PATTERN_systemd-layer := "^${LAYERDIR}/"
diff --git a/meta-systemd/invalid.bb b/meta-systemd/invalid.bb
new file mode 100644
index 0000000..b16787b
--- /dev/null
+++ b/meta-systemd/invalid.bb
@@ -0,0 +1,2 @@
+Content of this file is invalid and is used by conf/layer.conf to
+ensure that BBFILES is expanded after BBFILE_COLLECTIONS.
