Index: django/contrib/comments/admin.py
===================================================================
--- django/contrib/comments/admin.py	(revision 8070)
+++ django/contrib/comments/admin.py	(working copy)
@@ -18,7 +18,7 @@
 class FreeCommentAdmin(admin.ModelAdmin):
     fieldsets = (
         (None, {'fields': ('content_type', 'object_id', 'site')}),
-        ('Content', {'fields': ('person_name', 'comment')}),
+        ('Content', {'fields': ('person_name', 'person_email', 'person_url', 'comment')}),
         ('Meta', {'fields': ('is_public', 'ip_address', 'approved')}),
     )
     list_display = ('person_name', 'submit_date', 'content_type', 'get_content_object')
Index: django/contrib/comments/models.py
===================================================================
--- django/contrib/comments/models.py	(revision 8070)
+++ django/contrib/comments/models.py	(working copy)
@@ -164,6 +164,8 @@
     object_id = models.IntegerField(_('object ID'))
     comment = models.TextField(_('comment'), max_length=3000)
     person_name = models.CharField(_("person's name"), max_length=50)
+    person_email = models.EmailField(_("person's e-mail address"), blank=True)
+    person_url = models.URLField(_("person's url"), blank=True)    
     submit_date = models.DateTimeField(_('date/time submitted'), auto_now_add=True)
     is_public = models.BooleanField(_('is public'))
     ip_address = models.IPAddressField(_('ip address'))
Index: django/contrib/comments/views/comments.py
===================================================================
--- django/contrib/comments/views/comments.py	(revision 8070)
+++ django/contrib/comments/views/comments.py	(working copy)
@@ -172,6 +172,8 @@
         self.fields = (
             oldforms.TextField(field_name="person_name", max_length=50, is_required=True,
                 validator_list=[self.hasNoProfanities]),
+            oldforms.TextField(field_name="person_email", maxlength=70),
+            oldforms.TextField(field_name="person_url", maxlength=100),
             oldforms.LargeTextField(field_name="comment", max_length=3000, is_required=True,
                 validator_list=[self.hasNoProfanities]),
         )
@@ -185,7 +187,11 @@
         "Helper function"
         return FreeComment(None, new_data["content_type_id"],
             new_data["object_id"], new_data["comment"].strip(),
-            new_data["person_name"].strip(), datetime.datetime.now(), new_data["is_public"],
+            new_data["person_name"].strip(),
+            new_data["person_email"].strip(),
+            new_data["person_url"].strip(),
+            datetime.datetime.now(),
+            new_data["is_public"],
             new_data["ip_address"], False, settings.SITE_ID)
 
     def save(self, new_data):
@@ -196,6 +202,7 @@
         # the comment was posted successfully.
         for old_comment in FreeComment.objects.filter(content_type__id__exact=new_data["content_type_id"],
             object_id__exact=new_data["object_id"], person_name__exact=new_data["person_name"],
+            person_email__exact=new_data["person_email"], person_url__exact=new_data["person_url"],
             submit_date__year=today.year, submit_date__month=today.month,
             submit_date__day=today.day):
             if old_comment.comment == c.comment:
Index: django/contrib/comments/templates/comments/freeform.html
===================================================================
--- django/contrib/comments/templates/comments/freeform.html	(revision 8070)
+++ django/contrib/comments/templates/comments/freeform.html	(working copy)
@@ -2,6 +2,8 @@
 {% if display_form %}
 <form action="/comments/postfree/" method="post">
 <p><label for="id_person_name">{% trans "Your name:" %}</label> <input type="text" id="id_person_name" name="person_name" /></p>
+<p><label for="id_person_email">{% trans "E-mail Address (optional):" %}</label> <input type="text" id="id_person_email" name="person_email" /></p>
+<p><label for="id_person_url">{% trans "URL (optional):" %}</label> <input type="text" id="id_person_url" name="person_url" /></p>
 <p><label for="id_comment">{% trans "Comment:" %}</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
 <p>
 <input type="hidden" name="options" value="{{ options }}" />
