diff --git a/meta-phosphor/common/recipes-phosphor/ipmi/phosphor-ipmi-host.bb b/meta-phosphor/common/recipes-phosphor/ipmi/phosphor-ipmi-host.bb
index 9a46307..7417ec3 100644
--- a/meta-phosphor/common/recipes-phosphor/ipmi/phosphor-ipmi-host.bb
+++ b/meta-phosphor/common/recipes-phosphor/ipmi/phosphor-ipmi-host.bb
@@ -91,7 +91,7 @@
     if os.stat(os.path.join(sensorsdir, 'sensor.yaml')).st_size == 0:
         return
     fetch = bb.fetch2.Fetch([], d)
-    override_urls = filter(lambda f: f.endswith('.hardcoded.yaml'), fetch.urls)
+    override_urls = [url for url in fetch.urls if url.endswith('.hardcoded.yaml')]
     for url in override_urls:
         bb.debug(2, 'Overriding with source: ' + url)
         local_base = os.path.basename(fetch.localpath(url))
diff --git a/meta-phosphor/common/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb b/meta-phosphor/common/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb
index 169b547..a9955fe 100644
--- a/meta-phosphor/common/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb
+++ b/meta-phosphor/common/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb
@@ -41,7 +41,7 @@
     cmd.append(os.path.join(sensoryamldir, 'config.yaml'))
 
     fetch = os.listdir(sensoryamldir)
-    override_urls = filter(lambda f: f.endswith('-config.yaml'), fetch)
+    override_urls = [url for url in fetch if url.endswith('-config.yaml')]
     for url in override_urls:
         bb.debug(2, 'Merging extra configurations: ' + url)
         filename = os.path.join(sensoryamldir, url)
diff --git a/meta-phosphor/common/recipes-phosphor/settings/phosphor-settings-manager.bb b/meta-phosphor/common/recipes-phosphor/settings/phosphor-settings-manager.bb
index 525a9fd..10938c9 100644
--- a/meta-phosphor/common/recipes-phosphor/settings/phosphor-settings-manager.bb
+++ b/meta-phosphor/common/recipes-phosphor/settings/phosphor-settings-manager.bb
@@ -48,7 +48,7 @@
     cmd.append(os.path.join(settingsdir, 'defaults.yaml'))
 
     fetch = bb.fetch2.Fetch([], d)
-    override_urls = filter(lambda f: f.endswith('.override.yml'), fetch.urls)
+    override_urls = [url for url in fetch.urls if url.endswith('.override.yml')]
     for url in override_urls:
         bb.debug(2, 'Overriding with source: ' + url)
         local_base = os.path.basename(fetch.localpath(url))
diff --git a/meta-phosphor/common/recipes-phosphor/settings/phosphor-settings.bb b/meta-phosphor/common/recipes-phosphor/settings/phosphor-settings.bb
index 191a389..8e94d8f 100644
--- a/meta-phosphor/common/recipes-phosphor/settings/phosphor-settings.bb
+++ b/meta-phosphor/common/recipes-phosphor/settings/phosphor-settings.bb
@@ -36,7 +36,7 @@
     cmd.append(os.path.join(d.getVar('S', True), 'settings.yaml'))
 
     fetch = bb.fetch2.Fetch([], d)
-    override_urls = filter(lambda f: f.endswith('.override.yml'), fetch.urls)
+    override_urls = [url for url in fetch.urls if url.endswith('.override.yml')]
     for url in override_urls:
         bb.debug(2, 'Overriding with source: ' + url)
         local_base = os.path.basename(fetch.localpath(url))
