Index: django/contrib/admin/options.py
===================================================================
--- django/contrib/admin/options.py	(revision 7724)
+++ django/contrib/admin/options.py	(working copy)
@@ -319,12 +319,19 @@
         opts = self.opts
         return request.user.has_perm(opts.app_label + '.' + opts.get_delete_permission())
 
+    def manager(self, request):
+        """
+        Returns a Manager to be queried in the admin site. This is used by
+        queryset, changelist_view, and delete_view.
+        """
+        return self.model._default_manager
+
     def queryset(self, request):
         """
         Returns a QuerySet of all model instances that can be edited by the
         admin site. This is used by changelist_view.
         """
-        qs = self.model._default_manager.get_query_set()
+        qs = self.manager(request).get_query_set()
         # TODO: this should be handled by some parameter to the ChangeList.
         ordering = self.ordering or () # otherwise we might try to *None, which is bad ;)
         if ordering:
@@ -550,7 +557,7 @@
         app_label = opts.app_label
 
         try:
-            obj = model._default_manager.get(pk=object_id)
+            obj = self.manager(request).get(pk=object_id)
         except model.DoesNotExist:
             # Don't raise Http404 just yet, because we haven't checked
             # permissions yet. We don't want an unauthenticated user to be able
@@ -662,7 +669,7 @@
         app_label = opts.app_label
 
         try:
-            obj = self.model._default_manager.get(pk=object_id)
+            obj = self.manager(request).get(pk=object_id)
         except self.model.DoesNotExist:
             # Don't raise Http404 just yet, because we haven't checked
             # permissions yet. We don't want an unauthenticated user to be able
