diff --git a/meta/recipes-devtools/python/python3/0001-prefer-valid-entrypoints.patch b/meta/recipes-devtools/python/python3/0001-prefer-valid-entrypoints.patch
new file mode 100644
index 00000000000..1250dc9ff04
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/0001-prefer-valid-entrypoints.patch
@@ -0,0 +1,27 @@
+From ef33ac27e3ac1b9cb159d7eec0ad1af120cd9dc1 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Fri, 17 Apr 2026 16:53:42 +0100
+Subject: [PATCH] prefer valid entrypoints
+
+When there are multiple distributions found and some of them are invalid, ensure that
+the entry_points() accessor puts valid dists first.
+
+Upstream-Status: Submitted [https://github.com/python/importlib_metadata/issues/534]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ Lib/importlib/metadata/__init__.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Lib/importlib/metadata/__init__.py b/Lib/importlib/metadata/__init__.py
+index 085378c..ff5cae4 100644
+--- a/Lib/importlib/metadata/__init__.py
++++ b/Lib/importlib/metadata/__init__.py
+@@ -1016,7 +1016,7 @@ def entry_points(**params) -> EntryPoints:
+     :return: EntryPoints for all installed packages.
+     """
+     eps = itertools.chain.from_iterable(
+-        dist.entry_points for dist in _unique(distributions())
++        dist.entry_points for dist in _unique(Distribution._prefer_valid(distributions()))
+     )
+     return EntryPoints(eps).select(**params)
+ 
diff --git a/meta/recipes-devtools/python/python3_3.14.4.bb b/meta/recipes-devtools/python/python3_3.14.4.bb
index f48dbc69963..ea10c4d0e04 100644
--- a/meta/recipes-devtools/python/python3_3.14.4.bb
+++ b/meta/recipes-devtools/python/python3_3.14.4.bb
@@ -34,6 +34,7 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
            file://0001-test_sysconfig-skip-test_sysconfig.test_sysconfigdat.patch \
            file://0001-Skip-flaky-test_default_timeout-tests.patch \
            file://0001-test_only_active_thread-skip-problematic-test.patch \
+           file://0001-prefer-valid-entrypoints.patch \
            "
 SRC_URI:append:class-native = " \
            file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \
