diff --git a/tests/get_or_create/models.py b/tests/get_or_create/models.py
index 4b5f081efa9..f8f6157348f 100644
--- a/tests/get_or_create/models.py
+++ b/tests/get_or_create/models.py
@@ -50,6 +50,10 @@ class Author(models.Model):
     name = models.CharField(max_length=100)
 
 
+class Journalist(Author):
+    specialty = models.CharField(max_length=100)
+
+
 class Book(models.Model):
     name = models.CharField(max_length=100)
     authors = models.ManyToManyField(Author, related_name="books")
diff --git a/tests/get_or_create/tests.py b/tests/get_or_create/tests.py
index a2821187b2d..aa68d41c004 100644
--- a/tests/get_or_create/tests.py
+++ b/tests/get_or_create/tests.py
@@ -12,6 +12,7 @@ from .models import (
     Author,
     Book,
     DefaultPerson,
+    Journalist,
     ManualPrimaryKeyTest,
     Person,
     Profile,
@@ -503,6 +504,15 @@ class UpdateOrCreateTests(TestCase):
         )
         self.assertFalse(created)
 
+    def test_mti_update_non_local_concrete_fields(self):
+        journalist = Journalist.objects.create(name="Jane", specialty="Politics")
+        journalist, created = Journalist.objects.update_or_create(
+            pk=journalist.pk,
+            defaults={"name": "John"},
+        )
+        self.assertIs(created, False)
+        self.assertEqual(journalist.name, "John")
+
 
 class UpdateOrCreateTestsWithManualPKs(TestCase):
     def test_create_with_duplicate_primary_key(self):