Index: django/db/models/fields/__init__.py
===================================================================
--- django/db/models/fields/__init__.py	(revision 8777)
+++ django/db/models/fields/__init__.py	(working copy)
@@ -866,16 +866,6 @@
         defaults.update(kwargs)
         return super(URLField, self).formfield(**defaults)
 
-class USStateField(Field):
-    def get_internal_type(self):
-        return "USStateField"
-
-    def formfield(self, **kwargs):
-        from django.contrib.localflavor.us.forms import USStateSelect
-        defaults = {'widget': USStateSelect}
-        defaults.update(kwargs)
-        return super(USStateField, self).formfield(**defaults)
-
 class XMLField(TextField):
     def __init__(self, verbose_name=None, name=None, schema_path=None, **kwargs):
         self.schema_path = schema_path
Index: django/db/backends/postgresql/creation.py
===================================================================
--- django/db/backends/postgresql/creation.py	(revision 8777)
+++ django/db/backends/postgresql/creation.py	(working copy)
@@ -28,7 +28,6 @@
         'SmallIntegerField': 'smallint',
         'TextField':         'text',
         'TimeField':         'time',
-        'USStateField':      'varchar(2)',
     }
 
     def sql_table_creation_suffix(self):
Index: django/db/backends/sqlite3/creation.py
===================================================================
--- django/db/backends/sqlite3/creation.py	(revision 8777)
+++ django/db/backends/sqlite3/creation.py	(working copy)
@@ -29,7 +29,6 @@
         'SmallIntegerField':            'smallint',
         'TextField':                    'text',
         'TimeField':                    'time',
-        'USStateField':                 'varchar(2)',
     }
     
     def sql_for_pending_references(self, model, style, pending_references):
Index: django/db/backends/mysql/creation.py
===================================================================
--- django/db/backends/mysql/creation.py	(revision 8777)
+++ django/db/backends/mysql/creation.py	(working copy)
@@ -28,7 +28,6 @@
         'SmallIntegerField': 'smallint',
         'TextField':         'longtext',
         'TimeField':         'time',
-        'USStateField':      'varchar(2)',
     }
 
     def sql_table_creation_suffix(self):
Index: django/db/backends/oracle/creation.py
===================================================================
--- django/db/backends/oracle/creation.py	(revision 8777)
+++ django/db/backends/oracle/creation.py	(working copy)
@@ -38,7 +38,6 @@
         'TextField':                    'NCLOB',
         'TimeField':                    'TIMESTAMP',
         'URLField':                     'VARCHAR2(%(max_length)s)',
-        'USStateField':                 'CHAR(2)',
     }
 
     remember = {}
Index: django/contrib/gis/utils/layermapping.py
===================================================================
--- django/contrib/gis/utils/layermapping.py	(revision 8777)
+++ django/contrib/gis/utils/layermapping.py	(working copy)
@@ -118,6 +118,7 @@
     OFTDate, OFTDateTime, OFTInteger, OFTReal, OFTString, OFTTime
 from django.contrib.gis.models import GeometryColumns, SpatialRefSys
 from django.db import models, transaction
+from django.contrib.localflavor.us.models import USStateField
 
 # LayerMapping exceptions.
 class LayerMapError(Exception): pass
@@ -150,7 +151,7 @@
         models.SlugField : OFTString,
         models.TextField : OFTString,
         models.URLField : OFTString,
-        models.USStateField : OFTString,
+        USStateField : OFTString,
         models.XMLField : OFTString,
         models.SmallIntegerField : (OFTInteger, OFTReal, OFTString),
         models.PositiveSmallIntegerField : (OFTInteger, OFTReal, OFTString),
Index: django/contrib/gis/tests/relatedapp/models.py
===================================================================
--- django/contrib/gis/tests/relatedapp/models.py	(revision 8777)
+++ django/contrib/gis/tests/relatedapp/models.py	(working copy)
@@ -1,4 +1,5 @@
 from django.contrib.gis.db import models
+from django.contrib.localflavor.us.models import USStateField
 
 class Location(models.Model):
     name = models.CharField(max_length=50)
@@ -7,6 +8,6 @@
 
 class City(models.Model):
     name = models.CharField(max_length=50)
-    state = models.USStateField()
+    state = USStateField()
     location = models.ForeignKey(Location)
     objects = models.GeoManager()
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 USStateField
 
 # The following classes are for testing basic data
 # marshalling, including NULL values.
@@ -73,7 +74,7 @@
     data = models.TimeField(null=True)
 
 class USStateData(models.Model):
-    data = models.USStateField(null=True)
+    data = USStateField(null=True)
 
 class XMLData(models.Model):
     data = models.XMLField(null=True)
@@ -209,7 +210,7 @@
 #    data = models.TimeField(primary_key=True)
 
 class USStatePKData(models.Model):
-    data = models.USStateField(primary_key=True)
+    data = USStateField(primary_key=True)
 
 # class XMLPKData(models.Model):
 #     data = models.XMLField(primary_key=True)
Index: docs/topics/db/models.txt
===================================================================
--- docs/topics/db/models.txt	(revision 8777)
+++ docs/topics/db/models.txt	(working copy)
@@ -617,13 +617,14 @@
 
 For example, this model has a few custom methods::
 
+    from django.contrib.localflavor.us.models import USStateField
     class Person(models.Model):
         first_name = models.CharField(max_length=50)
         last_name = models.CharField(max_length=50)
         birth_date = models.DateField()
         address = models.CharField(max_length=100)
         city = models.CharField(max_length=50)
-        state = models.USStateField() # Yes, this is America-centric...
+        state = USStateField() # Yes, this is America-centric...
 
         def baby_boomer_status(self):
             "Returns the person's baby-boomer status."
Index: docs/topics/forms/modelforms.txt
===================================================================
--- docs/topics/forms/modelforms.txt	(revision 8777)
+++ docs/topics/forms/modelforms.txt	(working copy)
@@ -73,10 +73,6 @@
     ``TimeField``                    ``TimeField``
     ``URLField``                     ``URLField`` with ``verify_exists`` set
                                      to the model field's ``verify_exists``
-    ``USStateField``                 ``CharField`` with
-                                     ``widget=USStateSelect``
-                                     (``USStateSelect`` is from
-                                     ``django.contrib.localflavor.us``)
     ``XMLField``                     ``CharField`` with ``widget=Textarea``
     ===============================  ========================================
 
Index: docs/ref/contrib/localflavor.txt
===================================================================
--- docs/ref/contrib/localflavor.txt	(revision 8777)
+++ docs/ref/contrib/localflavor.txt	(working copy)
@@ -649,3 +649,8 @@
 
     A form ``Select`` widget that uses a list of U.S. states/territories as its
     choices.
+
+.. class:: us.models.USStateField
+
+    A model field that forms represent as a ``forms.USStateField`` field and
+    stores the two-letter U.S. state abbreviation in the database.
Index: docs/ref/models/fields.txt
===================================================================
--- docs/ref/models/fields.txt	(revision 8777)
+++ docs/ref/models/fields.txt	(working copy)
@@ -705,14 +705,6 @@
 :attr:`~CharField.max_length`argument. If you don't specify
 :attr:`~CharField.max_length`, a default of 200 is used.
 
-``USStateField``
-----------------
-
-.. class:: USStateField([**options])
-
-A two-letter U.S. state abbreviation. The admin represents this as an ``<input
-type="text">`` (a single-line input).
-
 ``XMLField``
 ------------
 
