Index: django/db/models/fields/__init__.py
===================================================================
--- django/db/models/fields/__init__.py	(revision 8777)
+++ django/db/models/fields/__init__.py	(working copy)
@@ -731,16 +731,6 @@
         defaults.update(kwargs)
         return super(NullBooleanField, self).formfield(**defaults)
 
-class PhoneNumberField(Field):
-    def get_internal_type(self):
-        return "PhoneNumberField"
-
-    def formfield(self, **kwargs):
-        from django.contrib.localflavor.us.forms import USPhoneNumberField
-        defaults = {'form_class': USPhoneNumberField}
-        defaults.update(kwargs)
-        return super(PhoneNumberField, self).formfield(**defaults)
-
 class PositiveIntegerField(IntegerField):
     def get_internal_type(self):
         return "PositiveIntegerField"
Index: django/db/backends/postgresql/creation.py
===================================================================
--- django/db/backends/postgresql/creation.py	(revision 8777)
+++ django/db/backends/postgresql/creation.py	(working copy)
@@ -21,7 +21,6 @@
         'IPAddressField':    'inet',
         'NullBooleanField':  'boolean',
         'OneToOneField':     'integer',
-        'PhoneNumberField':  'varchar(20)',
         'PositiveIntegerField': 'integer CHECK ("%(column)s" >= 0)',
         'PositiveSmallIntegerField': 'smallint CHECK ("%(column)s" >= 0)',
         'SlugField':         'varchar(%(max_length)s)',
Index: django/db/backends/sqlite3/creation.py
===================================================================
--- django/db/backends/sqlite3/creation.py	(revision 8777)
+++ django/db/backends/sqlite3/creation.py	(working copy)
@@ -22,7 +22,6 @@
         'IPAddressField':               'char(15)',
         'NullBooleanField':             'bool',
         'OneToOneField':                'integer',
-        'PhoneNumberField':             'varchar(20)',
         'PositiveIntegerField':         'integer unsigned',
         'PositiveSmallIntegerField':    'smallint unsigned',
         'SlugField':                    'varchar(%(max_length)s)',
Index: django/db/backends/mysql/creation.py
===================================================================
--- django/db/backends/mysql/creation.py	(revision 8777)
+++ django/db/backends/mysql/creation.py	(working copy)
@@ -21,7 +21,6 @@
         'IPAddressField':    'char(15)',
         'NullBooleanField':  'bool',
         'OneToOneField':     'integer',
-        'PhoneNumberField':  'varchar(20)',
         'PositiveIntegerField': 'integer UNSIGNED',
         'PositiveSmallIntegerField': 'smallint UNSIGNED',
         'SlugField':         'varchar(%(max_length)s)',
Index: django/db/backends/oracle/creation.py
===================================================================
--- django/db/backends/oracle/creation.py	(revision 8777)
+++ django/db/backends/oracle/creation.py	(working copy)
@@ -30,7 +30,6 @@
         'IPAddressField':               'VARCHAR2(15)',
         'NullBooleanField':             'NUMBER(1) CHECK ((%(qn_column)s IN (0,1)) OR (%(qn_column)s IS NULL))',
         'OneToOneField':                'NUMBER(11)',
-        'PhoneNumberField':             'VARCHAR2(20)',
         'PositiveIntegerField':         'NUMBER(11) CHECK (%(qn_column)s >= 0)',
         'PositiveSmallIntegerField':    'NUMBER(11) CHECK (%(qn_column)s >= 0)',
         'SlugField':                    'NVARCHAR2(50)',
Index: django/contrib/localflavor/us/models.py
===================================================================
--- django/contrib/localflavor/us/models.py	(revision 0)
+++ django/contrib/localflavor/us/models.py	(revision 0)
@@ -0,0 +1,18 @@
+from django.db.models.fields import Field
+
+class PhoneNumberField(Field):
+    def db_type(self):
+        from django.conf import settings
+        if settings.DATABASE_ENGINE == 'oracle':
+            return 'VARCHAR2(20)'
+        else:
+            return 'varchar(20)'
+
+    def get_internal_type(self):
+        return "PhoneNumberField"
+
+    def formfield(self, **kwargs):
+        from django.contrib.localflavor.us.forms import USPhoneNumberField
+        defaults = {'form_class': USPhoneNumberField}
+        defaults.update(kwargs)
+        return super(PhoneNumberField, self).formfield(**defaults)
Index: tests/modeltests/model_forms/models.py
===================================================================
--- tests/modeltests/model_forms/models.py	(revision 8777)
+++ tests/modeltests/model_forms/models.py	(working copy)
@@ -82,8 +82,9 @@
     def __unicode__(self):
         return "%s is %s" % (self.writer, self.age)
 
+from django.contrib.localflavor.us.models import PhoneNumberField
 class PhoneNumber(models.Model):
-    phone = models.PhoneNumberField()
+    phone = PhoneNumberField()
     description = models.CharField(max_length=20)
 
     def __unicode__(self):
Index: tests/regressiontests/serializers_regress/models.py
===================================================================
--- tests/regressiontests/serializers_regress/models.py	(revision 8777)
+++ tests/regressiontests/serializers_regress/models.py	(working copy)
@@ -8,6 +8,7 @@
 from django.db import models
 from django.contrib.contenttypes import generic
 from django.contrib.contenttypes.models import ContentType
+from django.contrib.localflavor.us.models import PhoneNumberField
 
 # The following classes are for testing basic data
 # marshalling, including NULL values.
@@ -52,7 +53,7 @@
     data = models.NullBooleanField(null=True)
 
 class PhoneData(models.Model):
-    data = models.PhoneNumberField(null=True)
+    data = PhoneNumberField(null=True)
 
 class PositiveIntegerData(models.Model):
     data = models.PositiveIntegerField(null=True)
@@ -188,7 +189,7 @@
 #     data = models.NullBooleanField(primary_key=True)
 
 class PhonePKData(models.Model):
-    data = models.PhoneNumberField(primary_key=True)
+    data = PhoneNumberField(primary_key=True)
 
 class PositiveIntegerPKData(models.Model):
     data = models.PositiveIntegerField(primary_key=True)
