Index: django/shortcuts/__init__.py
===================================================================
--- django/shortcuts/__init__.py	(revision 3689)
+++ django/shortcuts/__init__.py	(working copy)
@@ -4,6 +4,7 @@
 
 from django.template import loader
 from django.http import HttpResponse, Http404
+from django.db.models.manager import Manager
 
 
 def render_to_response(*args, **kwargs):
@@ -11,13 +12,22 @@
 load_and_render = render_to_response # For backwards compatibility.
 
 def get_object_or_404(klass, *args, **kwargs):
+    if isinstance(klass, Manager):
+        manager = klass
+        klass = manager.model
+    else:
+        manager = klass._default_manager
     try:
-        return klass._default_manager.get(*args, **kwargs)
+        return manager.get(*args, **kwargs)
     except klass.DoesNotExist:
         raise Http404
 
 def get_list_or_404(klass, *args, **kwargs):
-    obj_list = list(klass._default_manager.filter(*args, **kwargs))
+    if isinstance(klass, Manager):
+        manager = klass
+    else:
+        manager = klass._default_manager
+    obj_list = list(manager.filter(*args, **kwargs))
     if not obj_list:
         raise Http404
     return obj_list
