Extended tuple's C API to include a new function, PyTuple_Pack() that is
useful for rapidly building argument tuples without having to invoke the
more sophisticated machinery of Py_BuildValue().
diff --git a/Doc/api/concrete.tex b/Doc/api/concrete.tex
index 5b0d9e3..7b84092 100644
--- a/Doc/api/concrete.tex
+++ b/Doc/api/concrete.tex
@@ -973,7 +973,7 @@
 \cdata{Py_FileSystemDefaultEncoding} as the encoding for file
 names. This variable should be treated as read-only: On some systems,
 it will be a pointer to a static string, on others, it will change at
-run-time, e.g. when the application invokes setlocale.
+run-time (such as when the application invokes setlocale).
 
 Error handling is set by errors which may also be set to \NULL{}
 meaning to use the default handling defined for the codec.  Default
@@ -1584,6 +1584,14 @@
   Return a new tuple object of size \var{len}, or \NULL{} on failure.
 \end{cfuncdesc}
 
+\begin{cfuncdesc}{PyObject*}{PyTuple_Pack}{int n, \moreargs}
+  Return a new tuple object of size \var{n}, or \NULL{} on failure.
+  The tuple values are initialized to the subsequent \var{n} C arguments
+  pointing to Python objects.  \samp{PyTuple_Pack(2, \var{a}, \var{b})}
+  is equivalent to \samp{Py_BuildValue("(OO)", \var{a}, \var{b})}.
+  \versionadded{2.4}			 
+\end{cfuncdesc}
+
 \begin{cfuncdesc}{int}{PyTuple_Size}{PyObject *p}
   Takes a pointer to a tuple object, and returns the size of that
   tuple.