=== modified file 'django/core/exceptions.py'
--- django/core/exceptions.py	2007-02-13 16:11:28 +0000
+++ django/core/exceptions.py	2007-02-16 19:36:15 +0000
@@ -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

=== modified file 'django/db/models/base.py'
--- django/db/models/base.py	2007-02-13 16:11:28 +0000
+++ django/db/models/base.py	2007-02-16 19:38:58 +0000
@@ -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
@@ -28,6 +28,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:

=== modified file 'django/db/models/query.py'
--- django/db/models/query.py	2007-02-16 19:21:54 +0000
+++ django/db/models/query.py	2007-02-16 19:42:53 +0000
@@ -236,7 +236,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):

