Index: django/http/__init__.py
===================================================================
--- django/http/__init__.py	(revision 16590)
+++ django/http/__init__.py	(working copy)
@@ -282,7 +282,7 @@
 
     def _get_upload_handlers(self):
         if not self._upload_handlers:
-            # If thre are no upload handlers defined, initialize them from settings.
+            # If there are no upload handlers defined, initialize them from settings.
             self._initialize_handlers()
         return self._upload_handlers
 
Index: django/test/_doctest.py
===================================================================
--- django/test/_doctest.py	(revision 16590)
+++ django/test/_doctest.py	(working copy)
@@ -552,7 +552,7 @@
         ^ (?P<msg> \w+ .*)   #     a line *starts* with alphanum.
         """, re.VERBOSE | re.MULTILINE | re.DOTALL)
 
-    # A callable returning a true value iff its argument is a blank line
+    # A callable returning a true value if its argument is a blank line
     # or contains a single comment.
     _IS_BLANK_OR_COMMENT = re.compile(r'^[ ]*(#.*)?$').match
 
Index: django/conf/global_settings.py
===================================================================
--- django/conf/global_settings.py	(revision 16590)
+++ django/conf/global_settings.py	(working copy)
@@ -13,7 +13,7 @@
 TEMPLATE_DEBUG = False
 
 # Whether the framework should propagate raw exceptions rather than catching
-# them. This is useful under some testing siutations and should never be used
+# them. This is useful under some testing situations and should never be used
 # on a live site.
 DEBUG_PROPAGATE_EXCEPTIONS = False
 
@@ -389,7 +389,7 @@
 # Boolean that sets whether to add thousand separator when formatting numbers
 USE_THOUSAND_SEPARATOR = False
 
-# Number of digits that will be together, when spliting them by
+# Number of digits that will be together, when splitting them by
 # THOUSAND_SEPARATOR. 0 means no grouping, 3 means splitting by thousands...
 NUMBER_GROUPING = 0
 
@@ -506,7 +506,7 @@
 # MESSAGES #
 ############
 
-# Class to use as messges backend
+# Class to use as messages backend
 MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
 
 # Default values of MESSAGE_LEVEL and MESSAGE_TAGS are defined within
Index: django/db/models/deletion.py
===================================================================
--- django/db/models/deletion.py	(revision 16590)
+++ django/db/models/deletion.py	(working copy)
@@ -217,7 +217,7 @@
             self.data[model] = sorted(instances, key=attrgetter("pk"))
 
         # if possible, bring the models in an order suitable for databases that
-        # don't support transactions or cannot defer contraint checks until the
+        # don't support transactions or cannot defer constraint checks until the
         # end of a transaction.
         self.sort()
 
Index: django/forms/formsets.py
===================================================================
--- django/forms/formsets.py	(revision 16590)
+++ django/forms/formsets.py	(working copy)
@@ -213,7 +213,7 @@
                     return (1, 0) # +infinity, larger than any number
                 return (0, k[1])
             self._ordering.sort(key=compare_ordering_key)
-        # Return a list of form.cleaned_data dicts in the order spcified by
+        # Return a list of form.cleaned_data dicts in the order specified by
         # the form data.
         return [self.forms[i[0]] for i in self._ordering]
     ordered_forms = property(_get_ordered_forms)
Index: django/forms/models.py
===================================================================
--- django/forms/models.py	(revision 16590)
+++ django/forms/models.py	(working copy)
@@ -117,7 +117,7 @@
         if exclude and f.name in exclude:
             continue
         if isinstance(f, ManyToManyField):
-            # If the object doesn't have a primry key yet, just use an empty
+            # If the object doesn't have a primary key yet, just use an empty
             # list for its m2m fields. Calling f.value_from_object will raise
             # an exception.
             if instance.pk is None:
@@ -288,7 +288,7 @@
             # Exclude empty fields that are not required by the form, if the
             # underlying model field is required. This keeps the model field
             # from raising a required error. Note: don't exclude the field from
-            # validaton if the model field allows blanks. If it does, the blank
+            # validation if the model field allows blanks. If it does, the blank
             # value may be included in a unique check, so cannot be excluded
             # from validation.
             else:
Index: django/core/management/commands/syncdb.py
===================================================================
--- django/core/management/commands/syncdb.py	(revision 16590)
+++ django/core/management/commands/syncdb.py	(working copy)
@@ -140,7 +140,7 @@
 
         if verbosity >= 1:
             print "Installing indexes ..."
-        # Install SQL indicies for all newly created models
+        # Install SQL indices for all newly created models
         for app_name, model_list in manifest.items():
             for model in model_list:
                 if model in created_models:
Index: django/core/management/sql.py
===================================================================
--- django/core/management/sql.py	(revision 16590)
+++ django/core/management/sql.py	(working copy)
@@ -11,7 +11,7 @@
 
     if connection.settings_dict['ENGINE'] == 'django.db.backends.dummy':
         # This must be the "dummy" database backend, which means the user
-        # hasn't set ENGINE for the databse.
+        # hasn't set ENGINE for the database.
         raise CommandError("Django doesn't know which syntax to use for your SQL statements,\n" +
             "because you haven't specified the ENGINE setting for the database.\n" +
             "Edit your settings file and change DATBASES['default']['ENGINE'] to something like\n" +
Index: django/contrib/gis/db/backends/spatialite/operations.py
===================================================================
--- django/contrib/gis/db/backends/spatialite/operations.py	(revision 16590)
+++ django/contrib/gis/db/backends/spatialite/operations.py	(working copy)
@@ -90,7 +90,7 @@
         'contains' : SpatiaLiteFunction('Contains'),
         'intersects' : SpatiaLiteFunction('Intersects'),
         'relate' : (SpatiaLiteRelate, basestring),
-        # Retruns true if B's bounding box completely contains A's bounding box.
+        # Returns true if B's bounding box completely contains A's bounding box.
         'contained' : SpatiaLiteFunction('MbrWithin'),
         # Returns true if A's bounding box completely contains B's bounding box.
         'bbcontains' : SpatiaLiteFunction('MbrContains'),
Index: django/contrib/gis/db/backends/postgis/operations.py
===================================================================
--- django/contrib/gis/db/backends/postgis/operations.py	(revision 16590)
+++ django/contrib/gis/db/backends/postgis/operations.py	(working copy)
@@ -536,7 +536,7 @@
                     op = op(self.geom_func_prefix, value[1])
                 elif lookup_type in self.distance_functions and lookup_type != 'dwithin':
                     if not field.geography and field.geodetic(self.connection):
-                        # Geodetic distances are only availble from Points to
+                        # Geodetic distances are only available from Points to
                         # PointFields on PostGIS 1.4 and below.
                         if not self.connection.ops.geography:
                             if field.geom_type != 'POINT':
Index: django/contrib/gis/geos/prototypes/io.py
===================================================================
--- django/contrib/gis/geos/prototypes/io.py	(revision 16590)
+++ django/contrib/gis/geos/prototypes/io.py	(working copy)
@@ -207,7 +207,7 @@
 thread_context = ThreadLocalIO()
 
 # These module-level routines return the I/O object that is local to the
-# the thread.  If the I/O object does not exist yet it will be initialized.
+# thread. If the I/O object does not exist yet it will be initialized.
 def wkt_r():
     if not thread_context.wkt_r:
         thread_context.wkt_r = _WKTReader()
Index: django/contrib/gis/maps/google/zoom.py
===================================================================
--- django/contrib/gis/maps/google/zoom.py	(revision 16590)
+++ django/contrib/gis/maps/google/zoom.py	(working copy)
@@ -41,7 +41,7 @@
             # Getting the degrees and radians per pixel, and the 1/2 the number of
             # for every zoom level.
             self._degpp.append(z / 360.) # degrees per pixel
-            self._radpp.append(z / (2 * pi)) # radians per pixl
+            self._radpp.append(z / (2 * pi)) # radians per pixel
             self._npix.append(z / 2) # number of pixels to center of tile
 
             # Multiplying `z` by 2 for the next iteration.
Index: django/contrib/gis/tests/relatedapp/tests.py
===================================================================
--- django/contrib/gis/tests/relatedapp/tests.py	(revision 16590)
+++ django/contrib/gis/tests/relatedapp/tests.py	(working copy)
@@ -130,7 +130,7 @@
 
         # Now creating a second Parcel where the borders are the same, just
         # in different coordinate systems.  The center points are also the
-        # the same (but in different coordinate systems), and this time they
+        # same (but in different coordinate systems), and this time they
         # actually correspond to the centroid of the border.
         c1 = b1.centroid
         c2 = c1.transform(2276, clone=True)
Index: django/contrib/gis/tests/geoapp/tests.py
===================================================================
--- django/contrib/gis/tests/geoapp/tests.py	(revision 16590)
+++ django/contrib/gis/tests/geoapp/tests.py	(working copy)
@@ -671,7 +671,7 @@
                '12.40500 43.94833,12.40889 43.95499,12.41580 43.95795)))')
         sm = Country.objects.create(name='San Marino', mpoly=fromstr(wkt))
 
-        # Because floating-point arithmitic isn't exact, we set a tolerance
+        # Because floating-point arithmetic isn't exact, we set a tolerance
         # to pass into GEOS `equals_exact`.
         tol = 0.000000001
 
Index: django/contrib/gis/gdal/envelope.py
===================================================================
--- django/contrib/gis/gdal/envelope.py	(revision 16590)
+++ django/contrib/gis/gdal/envelope.py	(working copy)
@@ -50,7 +50,7 @@
             else:
                 raise TypeError('Incorrect type of argument: %s' % str(type(args[0])))
         elif len(args) == 4:
-            # Individiual parameters passed in.
+            # Individual parameters passed in.
             #  Thanks to ww for the help
             self._from_sequence(map(float, args))
         else:
@@ -125,7 +125,7 @@
             # An x and an y parameter were passed in 
                 return self.expand_to_include((args[0], args[1], args[0], args[1])) 
         elif len(args) == 4: 
-            # Individiual parameters passed in. 
+            # Individual parameters passed in. 
             return self.expand_to_include(args) 
         else: 
             raise OGRException('Incorrect number (%d) of arguments.' % len(args[0])) 
Index: django/contrib/formtools/wizard/views.py
===================================================================
--- django/contrib/formtools/wizard/views.py	(revision 16590)
+++ django/contrib/formtools/wizard/views.py	(working copy)
@@ -152,7 +152,7 @@
                 # if not, add the form with a zero based counter as unicode
                 init_form_list[unicode(i)] = form
 
-        # walk through the ne created list of forms
+        # walk through the new created list of forms
         for form in init_form_list.itervalues():
             if issubclass(form, formsets.BaseFormSet):
                 # if the element is based on BaseFormSet (FormSet/ModelFormSet)
Index: django/contrib/comments/views/moderation.py
===================================================================
--- django/contrib/comments/views/moderation.py	(revision 16590)
+++ django/contrib/comments/views/moderation.py	(working copy)
@@ -87,7 +87,7 @@
         )
 
 # The following functions actually perform the various flag/aprove/delete
-# actions. They've been broken out into seperate functions to that they
+# actions. They've been broken out into separate functions to that they
 # may be called from admin actions.
 
 def perform_flag(request, comment):
Index: django/contrib/comments/views/comments.py
===================================================================
--- django/contrib/comments/views/comments.py	(revision 16590)
+++ django/contrib/comments/views/comments.py	(working copy)
@@ -87,7 +87,7 @@
             # preview templates, so we have to preserve that format.
             "comments/%s_%s_preview.html" % (model._meta.app_label, model._meta.module_name),
             "comments/%s_preview.html" % model._meta.app_label,
-            # Now the usual directory based template heirarchy.
+            # Now the usual directory based template hierarchy.
             "comments/%s/%s/preview.html" % (model._meta.app_label, model._meta.module_name),
             "comments/%s/preview.html" % model._meta.app_label,
             "comments/preview.html",
Index: django/contrib/localflavor/cz/forms.py
===================================================================
--- django/contrib/localflavor/cz/forms.py	(revision 16590)
+++ django/contrib/localflavor/cz/forms.py	(working copy)
@@ -134,7 +134,7 @@
         # remainder is equal:
         #  0 or 10: last digit is 1
         #  1: last digit is 0
-        # in other case, last digin is 11 - remainder
+        # in other case, last digit is 11 - remainder
 
         if (not remainder % 10 and check == 1) or \
         (remainder == 1 and check == 0) or \
Index: django/middleware/gzip.py
===================================================================
--- django/middleware/gzip.py	(revision 16590)
+++ django/middleware/gzip.py	(working copy)
@@ -22,7 +22,7 @@
         if response.has_header('Content-Encoding'):
             return response
 
-        # MSIE have issues with gzipped respones of various content types.
+        # MSIE have issues with gzipped response of various content types.
         if "msie" in request.META.get('HTTP_USER_AGENT', '').lower():
             ctype = response.get('Content-Type', '').lower()
             if not ctype.startswith("text/") or "javascript" in ctype:
Index: tests/modeltests/unmanaged_models/models.py
===================================================================
--- tests/modeltests/unmanaged_models/models.py	(revision 16590)
+++ tests/modeltests/unmanaged_models/models.py	(working copy)
@@ -5,7 +5,7 @@
 
 from django.db import models
 
-#  All of these models are creatd in the database by Django.
+#  All of these models are created in the database by Django.
 
 class A01(models.Model):
     f_a = models.CharField(max_length=10, db_index=True)
Index: tests/modeltests/lookup/tests.py
===================================================================
--- tests/modeltests/lookup/tests.py	(revision 16590)
+++ tests/modeltests/lookup/tests.py	(working copy)
@@ -251,7 +251,7 @@
     def test_values_list(self):
         # values_list() is similar to values(), except that the results are
         # returned as a list of tuples, rather than a list of dictionaries.
-        # Within each tuple, the order of the elemnts is the same as the order
+        # Within each tuple, the order of the elements is the same as the order
         # of fields in the values_list() call.
         identity = lambda x:x
         self.assertQuerysetEqual(Article.objects.values_list('headline'),
Index: tests/regressiontests/cache/tests.py
===================================================================
--- tests/regressiontests/cache/tests.py	(revision 16590)
+++ tests/regressiontests/cache/tests.py	(working copy)
@@ -220,7 +220,7 @@
         self.assertEqual(self.cache.has_key("goodbye1"), False)
 
     def test_in(self):
-        # The in operator can be used to inspet cache contents
+        # The in operator can be used to inspect cache contents
         self.cache.set("hello2", "goodbye2")
         self.assertEqual("hello2" in self.cache, True)
         self.assertEqual("goodbye2" in self.cache, False)
@@ -338,7 +338,7 @@
             self.assertEqual(self.cache.get(key), value)
 
     def test_binary_string(self):
-        # Binary strings should be cachable
+        # Binary strings should be cacheable
         from zlib import compress, decompress
         value = 'value_to_be_compressed'
         compressed_value = compress(value)
Index: tests/regressiontests/admin_widgets/tests.py
===================================================================
--- tests/regressiontests/admin_widgets/tests.py	(revision 16590)
+++ tests/regressiontests/admin_widgets/tests.py	(working copy)
@@ -274,7 +274,7 @@
         )
 
     def test_fk_related_model_not_in_admin(self):
-        # FK to a model not registered with admin site. Raw ID widget shoud
+        # FK to a model not registered with admin site. Raw ID widget should
         # have no magnifying glass link. See #16542
         big_honeycomb = models.Honeycomb.objects.create(location='Old tree')
         big_honeycomb.bee_set.create()
@@ -287,7 +287,7 @@
         )
 
     def test_fk_to_self_model_not_in_admin(self):
-        # FK to self, not registered with admin site. Raw ID widget shoud have
+        # FK to self, not registered with admin site. Raw ID widget should have
         # no magnifying glass link. See #16542
         subject1 = models.Individual.objects.create(name='Subject #1')
         models.Individual.objects.create(name='Child', parent=subject1)
@@ -345,7 +345,7 @@
 
     def test_m2m_related_model_not_in_admin(self):
         # M2M relationship with model not registered with admin site. Raw ID
-        # widget shoud have no magnifying glass link. See #16542
+        # widget should have no magnifying glass link. See #16542
         consultor1 = models.Advisor.objects.create(name='Rockstar Techie')
 
         c1 = models.Company.objects.create(name='Doodle')
Index: tests/regressiontests/multiple_database/tests.py
===================================================================
--- tests/regressiontests/multiple_database/tests.py	(revision 16590)
+++ tests/regressiontests/multiple_database/tests.py	(working copy)
@@ -1085,7 +1085,7 @@
         self.assertEqual(list(pro.authors.values_list('name', flat=True)), [u'Marty Alchin'])
         self.assertEqual(pro.editor.name, u'Marty Alchin')
 
-        # get_or_create is a special case. The get needs to be targetted at
+        # get_or_create is a special case. The get needs to be targeted at
         # the write database in order to avoid potential transaction
         # consistency problems
         book, created = Book.objects.get_or_create(title="Pro Django")
Index: tests/regressiontests/aggregation_regress/tests.py
===================================================================
--- tests/regressiontests/aggregation_regress/tests.py	(revision 16590)
+++ tests/regressiontests/aggregation_regress/tests.py	(working copy)
@@ -644,7 +644,7 @@
         )
 
         # Regression for #10766 - Shouldn't be able to reference an aggregate
-        # fields in an an aggregate() call.
+        # fields in an aggregate() call.
         self.assertRaises(
             FieldError,
             lambda: Book.objects.annotate(mean_age=Avg('authors__age')).annotate(Avg('mean_age'))
Index: tests/regressiontests/generic_views/dates.py
===================================================================
--- tests/regressiontests/generic_views/dates.py	(revision 16590)
+++ tests/regressiontests/generic_views/dates.py	(working copy)
@@ -339,7 +339,7 @@
         self.assertEqual(list(res.context['book_list']), [b])
         self.assertEqual(res.context['day'], future)
 
-        # allow_future but not allow_empty, next/prev amust be valid
+        # allow_future but not allow_empty, next/prev must be valid
         self.assertEqual(res.context['next_day'], None)
         self.assertEqual(res.context['previous_day'], datetime.date(2008, 10, 1))
 
Index: extras/csrf_migration_helper.py
===================================================================
--- extras/csrf_migration_helper.py	(revision 16590)
+++ extras/csrf_migration_helper.py	(working copy)
@@ -43,7 +43,7 @@
 #
 # - It's impossible to programmatically determine which forms should and should
 #   not have the token added.  The developer must decide when to do this,
-#   ensuring that the token is only added to internally targetted forms.
+#   ensuring that the token is only added to internally targeted forms.
 #
 # - It's impossible to programmatically work out when a template is used.  The
 #   attempts to trace back to view functions are guesses, and could easily fail
