Index: django/db/models/query.py
===================================================================
--- django/db/models/query.py	(revision 5681)
+++ django/db/models/query.py	(working copy)
@@ -835,7 +835,7 @@
     """
 
     # If we've got a max_depth set and we've exceeded that depth, bail now.
-    if max_depth and cur_depth > max_depth:
+    if max_depth and cur_depth >= max_depth:
         return None
 
     qn = backend.quote_name
Index: tests/modeltests/select_related/models.py
===================================================================
--- tests/modeltests/select_related/models.py	(revision 5681)
+++ tests/modeltests/select_related/models.py	(working copy)
@@ -52,13 +52,19 @@
     def __unicode__(self):
         return self.name
 
+class Color(models.Model):
+    name = models.CharField(maxlength=50)
+    def __unicode__(self):
+        return self.name
+
 class Species(models.Model):
     name = models.CharField(maxlength=50)
     genus = models.ForeignKey(Genus)
+    color = models.ForeignKey(Color)
     def __unicode__(self):
         return self.name
 
-def create_tree(stringtree):
+def create_tree(stringtree, color_name):
     """Helper to create a complete tree"""
     names = stringtree.split()
     models = [Domain, Kingdom, Phylum, Klass, Order, Family, Genus, Species]
@@ -72,9 +78,17 @@
             obj = model(name=name)
         if parent:
             setattr(obj, parent.__class__.__name__.lower(), parent)
+
+        if model == Species:
+            color = Color(name=color_name)
+            color.save()
+            obj.color = color
+
         obj.save()
         parent = obj
 
+
+
 __test__ = {'API_TESTS':"""
 
 # Set up.
@@ -83,10 +97,10 @@
 >>> from django.conf import settings
 >>> settings.DEBUG = True
 
->>> create_tree("Eukaryota Animalia Anthropoda Insecta Diptera Drosophilidae Drosophila melanogaster")
->>> create_tree("Eukaryota Animalia Chordata Mammalia Primates Hominidae Homo sapiens")
->>> create_tree("Eukaryota Plantae Magnoliophyta Magnoliopsida Fabales Fabaceae Pisum sativum")
->>> create_tree("Eukaryota Fungi Basidiomycota Homobasidiomycatae Agaricales Amanitacae Amanita muscaria")
+>>> create_tree("Eukaryota Animalia Anthropoda Insecta Diptera Drosophilidae Drosophila melanogaster","cyan")
+>>> create_tree("Eukaryota Animalia Chordata Mammalia Primates Hominidae Homo sapiens","magenta")
+>>> create_tree("Eukaryota Plantae Magnoliophyta Magnoliopsida Fabales Fabaceae Pisum sativum","yellow")
+>>> create_tree("Eukaryota Fungi Basidiomycota Homobasidiomycatae Agaricales Amanitacae Amanita muscaria","black")
 
 >>> from django import db
 
@@ -95,14 +109,18 @@
 >>> fly = Species.objects.get(name="melanogaster")
 >>> fly.genus.family.order.klass.phylum.kingdom.domain
 <Domain: Eukaryota>
+>>> fly.color
+<Color: cyan>
 >>> len(db.connection.queries)
-8
+9
 
 # However, a select_related() call will fill in those related objects without any extra queries:
 >>> db.reset_queries()
 >>> person = Species.objects.select_related().get(name="sapiens")
 >>> person.genus.family.order.klass.phylum.kingdom.domain
 <Domain: Eukaryota>
+>>> person.color
+<Color: magenta>
 >>> len(db.connection.queries)
 1
 
@@ -112,14 +130,18 @@
 >>> world = Species.objects.all()
 >>> [o.genus.family for o in world]
 [<Family: Drosophilidae>, <Family: Hominidae>, <Family: Fabaceae>, <Family: Amanitacae>]
+>>> [o.color for o in world]
+[<Color: cyan>, <Color: magenta>, <Color: yellow>, <Color: black>]
 >>> len(db.connection.queries)
-9
+13
 
 # With select_related():
 >>> db.reset_queries()
 >>> world = Species.objects.all().select_related()
 >>> [o.genus.family for o in world]
 [<Family: Drosophilidae>, <Family: Hominidae>, <Family: Fabaceae>, <Family: Amanitacae>]
+>>> [o.color for o in world]
+[<Color: cyan>, <Color: magenta>, <Color: yellow>, <Color: black>]
 >>> len(db.connection.queries)
 1
 
@@ -128,6 +150,8 @@
 >>> pea = Species.objects.select_related(depth=1).get(name="sativum")
 >>> pea.genus.family.order.klass.phylum.kingdom.domain
 <Domain: Eukaryota>
+>>> pea.color
+<Color: yellow>
 
 # Notice: one few query than above because of depth=1
 >>> len(db.connection.queries)
@@ -137,6 +161,8 @@
 >>> pea = Species.objects.select_related(depth=5).get(name="sativum")
 >>> pea.genus.family.order.klass.phylum.kingdom.domain
 <Domain: Eukaryota>
+>>> pea.color
+<Color: yellow>
 >>> len(db.connection.queries)
 3
 
@@ -144,6 +170,8 @@
 >>> world = Species.objects.all().select_related(depth=2)
 >>> [o.genus.family.order for o in world]
 [<Order: Diptera>, <Order: Primates>, <Order: Fabales>, <Order: Agaricales>]
+>>> [o.color for o in world]
+[<Color: cyan>, <Color: magenta>, <Color: yellow>, <Color: black>]
 >>> len(db.connection.queries)
 5
 
