Index: django/django/contrib/admin/validation.py
===================================================================
--- django/django/contrib/admin/validation.py	(revision 7930)
+++ django/django/contrib/admin/validation.py	(working copy)
@@ -1,4 +1,4 @@
-
+import sets
 from django.core.exceptions import ImproperlyConfigured
 from django.db import models
 from django.newforms.models import BaseModelForm, BaseInlineFormset
@@ -168,7 +168,10 @@
                 raise ImproperlyConfigured("`fields` key is required in "
                         "%s.fieldsets[%d][1] field options dict."
                         % (cls.__name__, idx))
-        for field in flatten_fieldsets(cls.fieldsets):
+        flattened_fieldsets = flatten_fieldsets(cls.fieldsets)
+        if len(flattened_fieldsets) > len(sets.Set(flattened_fieldsets)): 
+            raise ImproperlyConfigured('There are duplicate field(s) in %s.fieldsets' % cls.__name__)
+        for field in flattened_fieldsets:
             _check_field_existsw("fieldsets[%d][1]['fields']" % idx, field)
 
     # form
Index: django/tests/regressiontests/modeladmin/models.py
===================================================================
--- django/tests/regressiontests/modeladmin/models.py	(revision 7930)
+++ django/tests/regressiontests/modeladmin/models.py	(working copy)
@@ -337,6 +337,15 @@
 ...     fieldsets = (("General", {"fields": ("name",)}),)
 >>> validate(ValidationTestModelAdmin, ValidationTestModel)
 
+If there are duplicate fields in the fieldsets declaration, an exception
+should be raised.
+>>> class ValidationTestModelAdmin(ModelAdmin):
+...     fieldsets = [(None, {'fields': ['name', 'name']})]
+>>> validate(ValidationTestModelAdmin, ValidationTestModel)
+Traceback (most recent call last):
+...
+ImproperlyConfigured: There are duplicate field(s) in ValidationTestModelAdmin.fieldsets
+
 # form
 
 >>> class FakeForm(object):
Index: django/docs/admin.txt
===================================================================
--- django/docs/admin.txt	(revision 7930)
+++ django/docs/admin.txt	(working copy)
@@ -102,6 +102,21 @@
 that isn't an ``AutoField`` and has ``editable=True``, in a single fieldset,
 in the same order as the fields are defined in the model.
 
+``fieldsets`` should not contain duplicates (a duplicate meaning that a same field
+appears multiple times in the declaration). If a duplicate is found then an exception
+will be raised. For example, the following would **not** be valid, as the ``pub_date``
+field appears twice:: 
+
+    class PollAdmin(admin.ModelAdmin):
+        fieldsets = (
+            (None, {
+                'fields': ('pub_date', 'question')
+            }),
+            ('Date information', {
+                'fields': ('pub_date',)
+            }),
+    )
+
 The ``field_options`` dictionary can have the following keys:
 
 ``fields``
