Index: tests/modeltests/model_forms/models.py
===================================================================
--- tests/modeltests/model_forms/models.py	(revision 4548)
+++ tests/modeltests/model_forms/models.py	(working copy)
@@ -311,6 +311,23 @@
 >>> f.clean(2)
 <Category: It's a test>
 
+# Add a Category object *after* the ModelChoiceField has already been
+# instantiated. This proves clean() checks the database during clean() rather
+# than caching it at time of instantiation.
+>>> Category.objects.create(name='Fourth', url='4th')
+<Category: Fourth>
+>>> f.clean(4)
+<Category: Fourth>
+
+# Delete a Category object *after* the ModelChoiceField has already been
+# instantiated. This proves clean() checks the database during clean() rather
+# than caching it at time of instantiation.
+>>> Category.objects.get(id=4).delete()
+>>> f.clean(4)
+Traceback (most recent call last):
+...
+ValidationError: [u'Select a valid choice. That choice is not one of the available choices.']
+
 >>> f = ModelChoiceField(Category.objects.filter(pk=1), required=False)
 >>> print f.clean('')
 None
