Index: django/db/models/base.py
===================================================================
--- django/db/models/base.py	(revision 6783)
+++ django/db/models/base.py	(working copy)
@@ -1,7 +1,7 @@
 import django.db.models.manipulators
 import django.db.models.manager
 from django.core import validators
-from django.core.exceptions import ObjectDoesNotExist
+from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
 from django.db.models.fields import AutoField, ImageField, FieldDoesNotExist
 from django.db.models.fields.related import OneToOneRel, ManyToOneRel
 from django.db.models.query import delete_objects
@@ -35,6 +35,8 @@
         new_class = type.__new__(cls, name, bases, {'__module__': attrs.pop('__module__')})
         new_class.add_to_class('_meta', Options(attrs.pop('Meta', None)))
         new_class.add_to_class('DoesNotExist', types.ClassType('DoesNotExist', (ObjectDoesNotExist,), {}))
+        new_class.add_to_class('MultipleObjectsReturned',
+            types.ClassType('MultipleObjectsReturned', (MultipleObjectsReturned, ), {}))
 
         # Build complete list of parents
         for base in bases:
Index: django/db/models/query.py
===================================================================
--- django/db/models/query.py	(revision 6783)
+++ django/db/models/query.py	(working copy)
@@ -261,7 +261,8 @@
         obj_list = list(clone)
         if len(obj_list) < 1:
             raise self.model.DoesNotExist, "%s matching query does not exist." % self.model._meta.object_name
-        assert len(obj_list) == 1, "get() returned more than one %s -- it returned %s! Lookup parameters were %s" % (self.model._meta.object_name, len(obj_list), kwargs)
+        elif len(obj_list) > 1:
+            raise self.model.MultipleObjectsReturned, "get() returned more than one %s -- it returned %s! Lookup parameters were %s" % (self.model._meta.object_name, len(obj_list), kwargs)
         return obj_list[0]
 
     def create(self, **kwargs):
Index: django/core/exceptions.py
===================================================================
--- django/core/exceptions.py	(revision 6783)
+++ django/core/exceptions.py	(working copy)
@@ -4,6 +4,10 @@
     "The requested object does not exist"
     silent_variable_failure = True
 
+class MultipleObjectsReturned(Exception):
+    "The query returned multiple objects when only one was expected."
+    pass
+
 class SuspiciousOperation(Exception):
     "The user did something suspicious"
     pass
Index: django/shortcuts/__init__.py
===================================================================
--- django/shortcuts/__init__.py	(revision 6783)
+++ django/shortcuts/__init__.py	(working copy)
@@ -38,7 +38,7 @@
     klass may be a Model, Manager, or QuerySet object. All other passed
     arguments and keyword arguments are used in the get() query.
 
-    Note: Like with get(), an AssertionError will be raised if more than one
+    Note: Like with get(), an MultipleObjectsReturned will be raised if more than one
     object is found.
     """
     queryset = _get_queryset(klass)
Index: tests/modeltests/get_object_or_404/models.py
===================================================================
--- tests/modeltests/get_object_or_404/models.py	(revision 6783)
+++ tests/modeltests/get_object_or_404/models.py	(working copy)
@@ -78,7 +78,7 @@
 >>> get_object_or_404(Author.objects.all())
 Traceback (most recent call last):
 ...
-AssertionError: get() returned more than one Author -- it returned ...! Lookup parameters were {}
+MultipleObjectsReturned: get() returned more than one Author -- it returned ...! Lookup parameters were {}
 
 # Using an EmptyQuerySet raises a Http404 error.
 >>> get_object_or_404(Article.objects.none(), title__contains="Run")
Index: docs/shortcuts.txt
===================================================================
--- docs/shortcuts.txt	(revision 6783)
+++ docs/shortcuts.txt	(working copy)
@@ -98,8 +98,8 @@
         except MyModel.DoesNotExist:
             raise Http404
 
-Note: As with ``get()``, an ``AssertionError`` will be raised if more than
-one object is found.
+Note: As with ``get()``, an ``MultipleObjectsReturned`` exception will be
+raised if more than one object is found.
 
 .. _get(): ../db-api/#get-kwargs
 
