Index: django/db/models/query.py
===================================================================
--- django/db/models/query.py	(revision 7364)
+++ django/db/models/query.py	(working copy)
@@ -72,7 +72,7 @@
                 iter(self).next()
             except StopIteration:
                 return False
-        return True
+        return bool(self._result_cache)
 
     def __getitem__(self, k):
         "Retrieve an item or slice from the set of results."
Index: tests/modeltests/nonzero/__init__.py
===================================================================
Index: tests/modeltests/nonzero/models.py
===================================================================
--- tests/modeltests/nonzero/models.py	(revision 0)
+++ tests/modeltests/nonzero/models.py	(revision 0)
@@ -0,0 +1,18 @@
+"""
+43. Boolean evaluation of QuerySets
+
+This tests that QuerySet.__nonzero__ behaves consistently between caching.
+"""
+
+from django.db import models
+
+class Empty(models.Model):
+    pass
+
+__test__ = {'API_TESTS':"""
+>>> objects = Empty.objects.all()
+>>> bool(objects)
+False
+>>> bool(objects)
+False
+"""}
