diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py
index f7233305a7..0d7e05eb0a 100644
--- a/tests/expressions/tests.py
+++ b/tests/expressions/tests.py
@@ -685,6 +685,36 @@ def test_subquery(self):
             Employee.objects.exclude(company_point_of_contact_set=None).values("pk"),
         )
 
+    @skipUnlessDBFeature("can_distinct_on_fields")
+    def test_ordering_in_distinct_exists_subquery(self):
+        # Show that the inner Exists query
+        # respects the ordering when it is distinct
+        manager = Manager.objects.create(name="King Arthur")
+        Employee.objects.create(
+            manager=manager,
+            salary=10,
+            firstname="Robin",
+            lastname="The Not-So-Brave",
+        )
+        lancelot = Employee.objects.create(
+            manager=manager,
+            salary=20,  # Higher than Robin's
+            firstname="Lancelot",
+            lastname="The Brave",
+        )
+
+        highest_paid_per_manager_subquery = (
+            Employee
+            .objects
+            .filter(manager__isnull=False)
+            .order_by("manager", "-salary")
+            .distinct("manager")
+            .filter(pk=OuterRef("pk"))
+        )
+        qs = Employee.objects.filter(Exists(highest_paid_per_manager_subquery))
+        self.assertEqual(qs.get(manager=manager), lancelot)
+
+
     def test_subquery_eq(self):
         qs = Employee.objects.annotate(
             is_ceo=Exists(Company.objects.filter(ceo=OuterRef("pk"))),
