Index: django/db/models/fields/__init__.py
===================================================================
--- django/db/models/fields/__init__.py	(revision 8599)
+++ django/db/models/fields/__init__.py	(working copy)
@@ -422,7 +422,6 @@
 class AutoField(Field):
     empty_strings_allowed = False
     def __init__(self, *args, **kwargs):
-        assert kwargs.get('primary_key', False) is True, "%ss must have primary_key=True." % self.__class__.__name__
         kwargs['blank'] = True
         Field.__init__(self, *args, **kwargs)
 
@@ -456,7 +455,6 @@
         return Field.get_manipulator_new_data(self, new_data, rel)
 
     def contribute_to_class(self, cls, name):
-        assert not cls._meta.has_auto_field, "A model can't have more than one AutoField."
         super(AutoField, self).contribute_to_class(cls, name)
         cls._meta.has_auto_field = True
         cls._meta.auto_field = self
Index: tests/regressiontests/model_fields/models.py
===================================================================
--- tests/regressiontests/model_fields/models.py	(revision 8599)
+++ tests/regressiontests/model_fields/models.py	(working copy)
@@ -78,5 +78,11 @@
 >>> Foo.objects.filter(d=u'1.23')
 []
 
+# Make sure it is possible to create multiple AutoFields in a model,
+# while neither of them is a primary key.
+>>> class MyClass(models.Model):
+...    f1 = models.AutoField()
+...    f2 = models.AutoField()
 
+
 """}
