diff --git a/geant/gap_ansible/roles/base_config/tasks/merge_variables.yaml b/geant/gap_ansible/roles/base_config/tasks/merge_variables.yaml
index 3ccef82c09cbc925fe2559e83358fcd53829fb10..32d9a3f21857063022aa6d0b4e10956f803d2383 100644
--- a/geant/gap_ansible/roles/base_config/tasks/merge_variables.yaml
+++ b/geant/gap_ansible/roles/base_config/tasks/merge_variables.yaml
@@ -27,3 +27,15 @@
 - name: Merge Nokia CPM filters
   ansible.builtin.set_fact:
     cpm_filters: "{{ lookup('community.general.merge_variables', 'cpmf__to_merge', pattern_type='suffix') }}"
+
+- name: Prepare PE-specific vars
+  when: promote_to_pe | ansible.builtin.bool  # FIX: check the exact verb / keyword
+  block:
+    - name: Merge Nokia PE CPM filters
+      ansible.builtin.set_fact:
+        pe_cpm: "{{ lookup('community.general.merge_variables', 'cpm_pe__to_merge') }}"
+
+    - name: Combine P and PE CPM filters
+      ansible.builtin.set_fact:
+        cpm_filters: "{{ [cpm_filters, pe_cpm] | community.general.lists_mergeby('family',
+                                                                                  list_merge='append') }}"