Index: docs/releases/1.4.txt
===================================================================
--- docs/releases/1.4.txt	(revision 17164)
+++ docs/releases/1.4.txt	(working copy)
@@ -341,8 +341,17 @@
 a :class:`~django.db.models.fields.GenericIPAddressField` model field,
 a :class:`~django.forms.fields.GenericIPAddressField` form field and
 the validators :data:`~django.core.validators.validate_ipv46_address` and
-:data:`~django.core.validators.validate_ipv6_address`
+:data:`~django.core.validators.validate_ipv6_address`.
 
+The :class:`~django.contrib.comments.models.Comment` model formerly used a
+:class:`~django.db.models.fields.IPAddressField` to store the ip_address of
+comment submitters. This has been updated to use the new IPv4 and IPv6 capable
+``GenericIPAddressField``. Unfortunately, the old type would silently truncate
+IPv6 addresses longer than 15 characters for users of databases not having a
+native IP address type (this does not apply to PostgreSQL). It is recommended
+that users of the comments application resize the
+``django_comments.ip_address`` column in affected databases to 39 characters.
+
 Updated default project layout and ``manage.py``
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
Index: tests/modeltests/validation/models.py
===================================================================
--- tests/modeltests/validation/models.py	(revision 17164)
+++ tests/modeltests/validation/models.py	(working copy)
@@ -88,6 +88,8 @@
     generic_ip = models.GenericIPAddressField(blank=True, null=True, unique=True)
     v4_ip = models.GenericIPAddressField(blank=True, null=True, protocol="ipv4")
     v6_ip = models.GenericIPAddressField(blank=True, null=True, protocol="ipv6")
+    ip_verbose_name = models.GenericIPAddressField("IP Address Verbose",
+			blank=True, null=True)
 
 class GenericIPAddrUnpackUniqueTest(models.Model):
     generic_v4unpack_ip = models.GenericIPAddressField(blank=True, unique=True, unpack_ipv4=True)
@@ -102,4 +104,4 @@
         auto2 = models.AutoField(primary_key=True)
 except AssertionError, assertion_error:
     pass # Fail silently
-assert str(assertion_error) == u"A model can't have more than one AutoField."
\ No newline at end of file
+assert str(assertion_error) == u"A model can't have more than one AutoField."
Index: django/db/models/fields/__init__.py
===================================================================
--- django/db/models/fields/__init__.py	(revision 17164)
+++ django/db/models/fields/__init__.py	(working copy)
@@ -1010,7 +1010,8 @@
     description = _("IP address")
     default_error_messages = {}
 
-    def __init__(self, protocol='both', unpack_ipv4=False, *args, **kwargs):
+    def __init__(self, verbose_name=None, name=None, protocol='both',
+                 unpack_ipv4=False, *args, **kwargs):
         self.unpack_ipv4 = unpack_ipv4
         self.default_validators, invalid_error_message = \
             validators.ip_address_validators(protocol, unpack_ipv4)
Index: django/contrib/comments/models.py
===================================================================
--- django/contrib/comments/models.py	(revision 17164)
+++ django/contrib/comments/models.py	(working copy)
@@ -57,7 +57,8 @@
 
     # Metadata about the comment
     submit_date = models.DateTimeField(_('date/time submitted'), default=None)
-    ip_address  = models.IPAddressField(_('IP address'), blank=True, null=True)
+    ip_address  = models.GenericIPAddressField(_('IP address'),
+                    unpack_ipv4=True, blank=True, null=True)
     is_public   = models.BooleanField(_('is public'), default=True,
                     help_text=_('Uncheck this box to make the comment effectively ' \
                                 'disappear from the site.'))
