Index: django/contrib/admin/templatetags/admin_list.py
===================================================================
--- django/contrib/admin/templatetags/admin_list.py	(revision 2684)
+++ django/contrib/admin/templatetags/admin_list.py	(working copy)
@@ -79,7 +79,7 @@
             if field_name == '__repr__':
                 header = lookup_opts.verbose_name
             else:
-                func = getattr(cl.mod.Klass, field_name) # Let AttributeErrors propogate.
+                func = getattr(cl.mod.Klass, field_name) # Let AttributeErrors propagate.
                 try:
                     header = func.short_description
                 except AttributeError:
Index: django/utils/_threading_local.py
===================================================================
--- django/utils/_threading_local.py	(revision 2684)
+++ django/utils/_threading_local.py	(working copy)
@@ -149,7 +149,7 @@
             raise TypeError("Initialization arguments are not supported")
 
         # We need to create the thread dict in anticipation of
-        # __init__ being called, to make sire we don't cal it
+        # __init__ being called, to make sure we don't call it
         # again ourselves.
         dict = object.__getattribute__(self, '__dict__')
         currentThread().__dict__[key] = dict
Index: django/core/meta/__init__.py
===================================================================
--- django/core/meta/__init__.py	(revision 2684)
+++ django/core/meta/__init__.py	(working copy)
@@ -1733,7 +1733,7 @@
             if opts.one_to_one_field:
                 # Sanity check -- Make sure the "parent" object exists.
                 # For example, make sure the Place exists for the Restaurant.
-                # Let the ObjectDoesNotExist exception propogate up.
+                # Let the ObjectDoesNotExist exception propagate up.
                 lookup_kwargs = opts.one_to_one_field.rel.limit_choices_to
                 lookup_kwargs['%s__exact' % opts.one_to_one_field.rel.field_name] = obj_key
                 _ = opts.one_to_one_field.rel.to.get_model_module().get_object(**lookup_kwargs)
Index: django/core/meta/fields.py
===================================================================
--- django/core/meta/fields.py	(revision 2684)
+++ django/core/meta/fields.py	(working copy)
@@ -80,7 +80,7 @@
 
 # A guide to Field parameters:
 #
-#   * name:      The name of the field specifed in the model.
+#   * name:      The name of the field specified in the model.
 #   * attname:   The attribute to use on the model object. This is the same as
 #                "name", except in the case of ForeignKeys, where "_id" is
 #                appended.
Index: django/core/servers/basehttp.py
===================================================================
--- django/core/servers/basehttp.py	(revision 2684)
+++ django/core/servers/basehttp.py	(working copy)
@@ -46,7 +46,7 @@
         raise StopIteration
 
 # Regular expression that matches `special' characters in parameters, the
-# existance of which force quoting of the parameter value.
+# existence of which force quoting of the parameter value.
 tspecials = re.compile(r'[ \(\)<>@,;:\\"/\[\]\?=]')
 
 def _formatparam(param, value=None, quote=1):
Index: tests/testapp/models/basic.py
===================================================================
--- tests/testapp/models/basic.py	(revision 2684)
+++ tests/testapp/models/basic.py	(working copy)
@@ -195,7 +195,7 @@
 
 API_TESTS += """
 
-# You can manually specify the primary key when creating a new objet
+# You can manually specify the primary key when creating a new object
 >>> a101 = articles.Article(id=101, headline='Article 101', pub_date=datetime(2005, 7, 31, 12, 30, 45))
 >>> a101.save()
 >>> a101 = articles.get_object(pk=101)
Index: tests/othertests/cache.py
===================================================================
--- tests/othertests/cache.py	(revision 2684)
+++ tests/othertests/cache.py	(working copy)
@@ -15,7 +15,7 @@
 cache.set("key", "value")
 assert cache.get("key") == "value"
 
-# get with non-existant keys
+# get with non-existent keys
 assert cache.get("does not exist") is None
 assert cache.get("does not exist", "bang!") == "bang!"
 
@@ -57,4 +57,4 @@
 # expiration
 cache.set('expire', 'very quickly', 1)
 time.sleep(2)
-assert cache.get("expire") == None
\ No newline at end of file
+assert cache.get("expire") == None
Index: tests/doctest.py
===================================================================
--- tests/doctest.py	(revision 2684)
+++ tests/doctest.py	(working copy)
@@ -846,7 +846,7 @@
         if extraglobs is not None:
             globs.update(extraglobs)
 
-        # Recursively expore `obj`, extracting DocTests.
+        # Recursively explore `obj`, extracting DocTests.
         tests = []
         self._find(tests, obj, name, module, source_lines, globs, {})
         return tests
@@ -1210,7 +1210,7 @@
         # Process each example.
         for examplenum, example in enumerate(test.examples):
 
-            # If REPORT_ONLY_FIRST_FAILURE is set, then supress
+            # If REPORT_ONLY_FIRST_FAILURE is set, then suppress
             # reporting after the first failure.
             quiet = (self.optionflags & REPORT_ONLY_FIRST_FAILURE and
                      failures > 0)
Index: docs/modpython.txt
===================================================================
--- docs/modpython.txt	(revision 2684)
+++ docs/modpython.txt	(working copy)
@@ -190,7 +190,7 @@
 ==============
 
 When you use Apache/mod_python, errors will be caught by Django -- in other
-words, they won't propogate to the Apache level and won't appear in the Apache
+words, they won't propagate to the Apache level and won't appear in the Apache
 ``error_log``.
 
 The exception for this is if something is really wonky in your Django setup. In
