Index: django/forms/__init__.py
===================================================================
--- django/forms/__init__.py	(revision 2997)
+++ django/forms/__init__.py	(working copy)
@@ -891,10 +891,10 @@
         SelectField.__init__(self, field_name, choices, 1, is_required, validator_list)
 
 class PhoneNumberField(TextField):
-    "A convenience FormField for validating phone numbers (e.g. '630-555-1234')"
+    "A convenience FormField for validating phone numbers (e.g. '(630) 555-1234')"
     def __init__(self, field_name, is_required=False, validator_list=[]):
         validator_list = [self.isValidPhone] + validator_list
-        TextField.__init__(self, field_name, length=12, maxlength=12,
+        TextField.__init__(self, field_name, length=20, maxlength=20,
             is_required=is_required, validator_list=validator_list)
 
     def isValidPhone(self, field_data, all_data):
Index: django/core/validators.py
===================================================================
--- django/core/validators.py	(revision 2997)
+++ django/core/validators.py	(working copy)
@@ -23,7 +23,7 @@
 email_re = re.compile(r'^[A-Z0-9._%-][+A-Z0-9._%-]*@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}$', re.IGNORECASE)
 integer_re = re.compile(r'^-?\d+$')
 ip4_re = re.compile(r'^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$')
-phone_re = re.compile(r'^[A-PR-Y0-9]{3}-[A-PR-Y0-9]{3}-[A-PR-Y0-9]{4}$', re.IGNORECASE)
+phone_re = re.compile(r'^((1-)?[A-PR-Y0-9]{3}|\([A-PR-Y0-9]{3}\))[ -]?[A-PR-Y0-9]{3}[ -]?[A-PR-Y0-9]{4}$', re.IGNORECASE)
 slug_re = re.compile(r'^[-\w]+$')
 url_re = re.compile(r'^https?://\S+$')
 
@@ -156,7 +156,7 @@
 
 def isValidPhone(field_data, all_data):
     if not phone_re.search(field_data):
-        raise ValidationError, gettext('Phone numbers must be in XXX-XXX-XXXX format. "%s" is invalid.') % field_data
+        raise ValidationError, gettext('Phone numbers must be in XXX-XXX-XXXX or (XXX) XXX-XXXX formats. "%s" is invalid.') % field_data
 
 def isValidQuicktimeVideoURL(field_data, all_data):
     "Checks that the given URL is a video that can be played by QuickTime (qt, mpeg)"
