Index: django/db/models/fields/related.py
===================================================================
--- django/db/models/fields/related.py	(revision 7513)
+++ django/db/models/fields/related.py	(working copy)
@@ -165,7 +165,7 @@
     # SingleRelatedObjectDescriptor instance.
     def __init__(self, related):
         self.related = related
-        self.cache_name = '_%s_cache' % related.field.name
+        self.cache_name = '_%s_for_%s_cache' % (related.field.name, related.var_name)
 
     def __get__(self, instance, instance_type=None):
         if instance is None:

Index: tests/modeltests/model_inheritance/models.py
===================================================================
--- tests/modeltests/model_inheritance/models.py	(revision 7513)
+++ tests/modeltests/model_inheritance/models.py	(working copy)
@@ -93,6 +93,39 @@
     def __unicode__(self):
         return u"%s the parking lot" % self.name
 
+#
+# Multiple inheritance (multi table)
+#
+
+class Vehicle(models.Model):
+	name = models.TextField()
+	
+	def __unicode__(self):
+		return u"A vehicle called %s" % self.name
+
+class Car(Vehicle):
+	wheels = models.PositiveIntegerField(default=4)
+
+	def __unicode__(self):
+		return u"A car called %(name)s with %(wheels)s wheels" % \
+			{'name': self.name, 'wheels': self.wheels}
+	
+class Boat(Vehicle):
+	has_sail = models.BooleanField(default=True)
+
+	def __unicode__(self):
+		with_or_without = self.has_sail and "with" or "without"
+		return u"A boat called %(name)s %(with_or_without)s a sail" % \
+			{'name': self.name, 'with_or_without': with_or_without }
+	
+class Amphibian(Car, Boat):
+	is_a_robot_in_disguise = models.BooleanField(default=False)
+	
+	def __unicode__(self):
+		return u"An ampibian which is 1) %(car)s and 2) %(boat)s" % \
+			{'car': Car.__unicode__(self), 
+			'boat': Boat.__unicode__(self)}
+
 __test__ = {'API_TESTS':"""
 # The Student and Worker models both have 'name' and 'age' fields on them and
 # inherit the __unicode__() method, just as with normal Python subclassing.
@@ -265,4 +298,54 @@
 3
 >>> settings.DEBUG = False
 
+# Multiple inheritance: the Car and Boat objects are Vehicles
+# the Amphibian model is both a Car and a Boat
+>>> Boat(name="dingy", has_sail=False).save()
+>>> dingy_vehicle = Vehicle.objects.get(name="dingy")
+>>> dingy_vehicle.car # the dingy is not a car
+Traceback (most recent call last):
+    ...
+DoesNotExist: Car matching query does not exist.
+>>> dingy_vehicle.boat
+<Boat: A boat called dingy without a sail>
+>>> dingy_vehicle.car # the dingy is still not a car
+Traceback (most recent call last):
+    ...
+DoesNotExist: Car matching query does not exist.
+>>> dingy_vehicle.boat
+<Boat: A boat called dingy without a sail>
+>>> Car(name="my rolls", wheels=4).save()
+>>> rolls_vehicle = Vehicle.objects.get(name="my rolls")
+>>> rolls_vehicle.car
+<Car: A car called my rolls with 4 wheels>
+>>> rolls_vehicle.boat
+Traceback (most recent call last):
+    ...
+DoesNotExist: Boat matching query does not exist.
+>>> rolls_vehicle.car
+<Car: A car called my rolls with 4 wheels>
+>>> rolls_vehicle.boat
+Traceback (most recent call last):
+    ...
+DoesNotExist: Boat matching query does not exist.
+>>> amphibian = Amphibian()
+>>> amphibian.name = "optimus prime"
+>>> amphibian.has_sail = True
+>>> amphibian.wheels = 23
+>>> amphibian.is_a_robot_in_disguise = True
+>>> amphibian.save()
+>>> robot_vehicle = Vehicle.objects.get(name="optimus prime")
+>>> robot_vehicle.car
+<Car: A car called optimus prime with 23 wheels>
+>>> robot_vehicle.boat
+<Boat: A boat called optimus prime with a sail>
+>>> robot_vehicle.car
+<Car: A car called optimus prime with 23 wheels>
+>>> robot_vehicle.boat
+<Boat: A boat called optimus prime with a sail>
+>>> robot_vehicle.car.amphibian
+<Amphibian: An ampibian which is 1) A car called optimus prime with 23 wheels and 2) A boat called optimus prime with a sail>
+>>> robot_vehicle.boat.amphibian
+<Amphibian: An ampibian which is 1) A car called optimus prime with 23 wheels and 2) A boat called optimus prime with a sail>
+
 """}
