diff --git a/meta/classes/rm_work.bbclass b/meta/classes/rm_work.bbclass
index 52ecfafb72..cdef74f6a7 100644
--- a/meta/classes/rm_work.bbclass
+++ b/meta/classes/rm_work.bbclass
@@ -16,6 +16,12 @@
 #
 # RM_WORK_EXCLUDE += "icu-native icu busybox"
 #
+# += does not combine with a conditional value, so use :append if either the
+# configuration or a recipe excluding itself may be overridden:
+#
+# RM_WORK_EXCLUDE:append:qemuarm64 = " busybox"
+# RM_WORK_EXCLUDE:append = " ${PN}"
+#
 # Recipes can also configure which entries in their ${WORKDIR}
 # are preserved besides temp, which already gets excluded by default
 # because it contains logs:
diff --git a/meta/recipes-core/meta/meta-ide-support.bb b/meta/recipes-core/meta/meta-ide-support.bb
index c449302923..222ae21b29 100644
--- a/meta/recipes-core/meta/meta-ide-support.bb
+++ b/meta/recipes-core/meta/meta-ide-support.bb
@@ -4,7 +4,7 @@ LICENSE = "MIT"
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 DEPENDS = "virtual/libc ${MLPREFIX}gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native cmake-native autoconf-native automake-native meson-native intltool-native pkgconfig-native"
-RM_WORK_EXCLUDE += "${PN}"
+RM_WORK_EXCLUDE:append = " ${PN}"
 
 inherit toolchain-scripts nopackages deploy testsdk
 
diff --git a/meta/recipes-core/meta/wic-tools.bb b/meta/recipes-core/meta/wic-tools.bb
index 823dbe6db6..9123f6e55a 100644
--- a/meta/recipes-core/meta/wic-tools.bb
+++ b/meta/recipes-core/meta/wic-tools.bb
@@ -23,7 +23,7 @@ inherit nopackages
 
 # The sysroot of wic-tools is needed for wic, but if rm_work is enabled, it will
 # be removed before wic has a chance to use it, hence the exclusion below.
-RM_WORK_EXCLUDE += "${PN}"
+RM_WORK_EXCLUDE:append = " ${PN}"
 
 python do_build_sysroot () {
     bb.build.exec_func("extend_recipe_sysroot", d)
diff --git a/meta/recipes-devtools/clang/llvm-project-source.inc b/meta/recipes-devtools/clang/llvm-project-source.inc
index 85b5ef06dc..af601914bc 100644
--- a/meta/recipes-devtools/clang/llvm-project-source.inc
+++ b/meta/recipes-devtools/clang/llvm-project-source.inc
@@ -3,7 +3,7 @@ deltask do_compile
 deltask do_install
 deltask do_populate_sysroot
 deltask do_populate_lic
-RM_WORK_EXCLUDE += "${PN}"
+RM_WORK_EXCLUDE:append = " ${PN}"
 
 inherit nopackages allarch
 
diff --git a/meta/recipes-devtools/gcc/gcc-source.inc b/meta/recipes-devtools/gcc/gcc-source.inc
index d760171661..d2bb5222bf 100644
--- a/meta/recipes-devtools/gcc/gcc-source.inc
+++ b/meta/recipes-devtools/gcc/gcc-source.inc
@@ -3,7 +3,7 @@ deltask do_compile
 deltask do_install
 deltask do_populate_sysroot
 deltask do_populate_lic
-RM_WORK_EXCLUDE += "${PN}"
+RM_WORK_EXCLUDE:append = " ${PN}"
 
 inherit nopackages allarch
 
