diff --git a/tests/regressiontests/bug7872/__init__.py b/tests/regressiontests/bug7872/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/regressiontests/bug7872/models.py b/tests/regressiontests/bug7872/models.py
new file mode 100644
index 0000000..353cd57
--- /dev/null
+++ b/tests/regressiontests/bug7872/models.py
@@ -0,0 +1,25 @@
+"""
+Regression tests for #7872
+"""
+
+from django.db import models
+from django.db.models import Q
+
+# Mixed forward and reverse joins, #7872
+class Ticket(models.Model):
+  creator = models.IntegerField()
+
+class Group(models.Model):
+  name = models.CharField(max_length=30)
+
+class Assignment(models.Model):
+  ticket = models.ForeignKey(Ticket)
+  group = models.ForeignKey(Group)
+
+
+__test__ = {'API_TESTS':"""
+>>> Ticket.objects.create(creator=1)
+<Ticket: Ticket object>
+>>> Ticket.objects.filter(Q(creator=1)|Q(assignment__group__name='fizz'))
+<Ticket: Ticket object>
+"""}
