diff --git a/Doc/api/concrete.tex b/Doc/api/concrete.tex
index 7b84092..cc552b4 100644
--- a/Doc/api/concrete.tex
+++ b/Doc/api/concrete.tex
@@ -1112,7 +1112,7 @@
 
 % --- Unicode-Escape Codecs ----------------------------------------------
 
-These are the ``Unicode Esacpe'' codec APIs:
+These are the ``Unicode Escape'' codec APIs:
 
 \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeUnicodeEscape}{const char *s,
                                                int size,
@@ -1138,13 +1138,13 @@
 
 % --- Raw-Unicode-Escape Codecs ------------------------------------------
 
-These are the ``Raw Unicode Esacpe'' codec APIs:
+These are the ``Raw Unicode Escape'' codec APIs:
 
 \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeRawUnicodeEscape}{const char *s,
                                                int size,
                                                const char *errors}
   Creates a Unicode object by decoding \var{size} bytes of the
-  Raw-Unicode-Esacpe encoded string \var{s}.  Returns \NULL{} if an
+  Raw-Unicode-Escape encoded string \var{s}.  Returns \NULL{} if an
   exception was raised by the codec.
 \end{cfuncdesc}
 
@@ -1325,7 +1325,7 @@
 
 The following APIs are capable of handling Unicode objects and strings
 on input (we refer to them as strings in the descriptions) and return
-Unicode objects or integers as apporpriate.
+Unicode objects or integers as appropriate.
 
 They all return \NULL{} or \code{-1} if an exception occurs.
 
diff --git a/Doc/api/init.tex b/Doc/api/init.tex
index 6d009bb..bc71f9a 100644
--- a/Doc/api/init.tex
+++ b/Doc/api/init.tex
@@ -752,7 +752,7 @@
   function when an exception has been raised.  The callback function
   is called with this value for \var{what} when after any bytecode is
   processed after which the exception becomes set within the frame
-  being executed.  The effect of this is that as exception propogation
+  being executed.  The effect of this is that as exception propagation
   causes the Python stack to unwind, the callback is called upon
   return to each frame as the exception propagates.  Only trace
   functions receives these events; they are not needed by the
@@ -767,7 +767,7 @@
 
 \begin{cvardesc}{int}{PyTrace_RETURN}
   The value for the \var{what} parameter to \ctype{Py_tracefunc}
-  functions when a call is returning without propogating an exception.
+  functions when a call is returning without propagating an exception.
 \end{cvardesc}
 
 \begin{cfuncdesc}{void}{PyEval_SetProfile}{Py_tracefunc func, PyObject *obj}
diff --git a/Doc/api/newtypes.tex b/Doc/api/newtypes.tex
index f0af810..f1fe4d6 100644
--- a/Doc/api/newtypes.tex
+++ b/Doc/api/newtypes.tex
@@ -498,7 +498,7 @@
 
   The destructor function is called by the \cfunction{Py_DECREF()} and
   \cfunction{Py_XDECREF()} macros when the new reference count is
-  zero.  At this point, the instance is still in existance, but there
+  zero.  At this point, the instance is still in existence, but there
   are no references to it.  The destructor function should free all
   references which the instance owns, free all memory buffers owned by
   the instance (using the freeing function corresponding to the
@@ -1515,7 +1515,7 @@
          \label{supporting-iteration}}
 
 
-\section{Supporting Cyclic Garbarge Collection
+\section{Supporting Cyclic Garbage Collection
          \label{supporting-cycle-detection}}
 
 Python's support for detecting and collecting garbage which involves
