Index: tests/regressiontests/model_regress/fixtures/deferred_related_objects.json
===================================================================
--- tests/regressiontests/model_regress/fixtures/deferred_related_objects.json	(revision 0)
+++ tests/regressiontests/model_regress/fixtures/deferred_related_objects.json	(revision 0)
@@ -0,0 +1,31 @@
+[
+    {
+        "pk": "1",
+        "model": "model_regress.deferredrelateda",
+        "fields": {
+            "name": "a1",
+            "lots_of_text": "Lots of text A",
+            "a_field": "A goes here"
+        }
+    },
+    {
+        "pk": "2",
+        "model": "model_regress.deferredrelatedb",
+        "fields": {
+            "name": "b2",
+            "lots_of_text": "Lots of text B",
+            "b_field": "B goes here"
+        }
+    },
+    {
+        "pk": "3",
+        "model": "model_regress.deferredrelatedc",
+        "fields": {
+            "name": "c3",
+            "lots_of_text": "Lots of text C",
+            "a": 1,
+            "b": 2,
+            "is_published": 0
+        }
+    }
+]
Index: tests/regressiontests/model_regress/tests.py
===================================================================
--- tests/regressiontests/model_regress/tests.py	(revision 0)
+++ tests/regressiontests/model_regress/tests.py	(revision 0)
@@ -0,0 +1,13 @@
+from django.test import TestCase
+
+class DeferredRelatedModelTest(TestCase):
+    fixtures = ["deferred_related_objects.json"]
+
+    def test_deferred_related_fields(self):
+        from models import DeferredRelatedC
+
+        results = DeferredRelatedC.objects.all().only('name', 'a', 'b', 'a__name', 'b__name').select_related()
+        self.assertEqual(results[0].a.name, u'a1')
+        self.assertEqual(results[0].b.name, u'b2')
+        self.assertEqual(results[0].a.lots_of_text, u'Lots of text A')
+        self.assertEqual(results[0].b.lots_of_text, u'Lots of text B')
Index: tests/regressiontests/model_regress/models.py
===================================================================
--- tests/regressiontests/model_regress/models.py	(revision 10682)
+++ tests/regressiontests/model_regress/models.py	(working copy)
@@ -58,7 +58,27 @@
         # object).
         return 'Názov: %s' % self.name
 
+class DeferredRelatedBase(models.Model):
+    name = models.CharField(max_length=10)
+    lots_of_text = models.TextField()
 
+    class Meta:
+        abstract = True
+
+    def __unicode__(self):
+        return self.name
+
+class DeferredRelatedA(DeferredRelatedBase):
+    a_field = models.CharField(max_length=10)
+
+class DeferredRelatedB(DeferredRelatedBase):
+    b_field = models.CharField(max_length=10)
+
+class DeferredRelatedC(DeferredRelatedBase):
+    a = models.ForeignKey(DeferredRelatedA)
+    b = models.ForeignKey(DeferredRelatedB)
+    is_published = models.BooleanField()
+
 __test__ = {'API_TESTS': """
 (NOTE: Part of the regression test here is merely parsing the model
 declaration. The verbose_name, in particular, did not always work.)
Index: docs/topics/forms/modelforms.txt
===================================================================
--- docs/topics/forms/modelforms.txt	(revision 10682)
+++ docs/topics/forms/modelforms.txt	(working copy)
@@ -326,14 +326,21 @@
     for the missing, but required fields, or use ``save(commit=False)`` and
     manually set any extra required fields::
 
-        instance = Instance(required_field='value')
-        form = InstanceForm(request.POST, instance=instance)
-        new_instance = form.save()
+        class PartialAuthorForm(ModelForm):
+            class Meta:
+                model = Author
+                fields = ('name',)
 
-        instance = form.save(commit=False)
-        instance.required_field = 'new value'
-        new_instance = instance.save()
+        author = Author(title='MR')
+        form = PartialAuthorForm(request.POST, instance=author)
+        new_author = form.save()
 
+        # or:
+
+        author = form.save(commit=False)
+        author.title = 'MR'
+        new_author = author.save()
+
     See the `section on saving forms`_ for more details on using
     ``save(commit=False)``.
 
