diff --git a/Include/accessobject.h b/Include/accessobject.h
index 8cf4120..47f9895 100644
--- a/Include/accessobject.h
+++ b/Include/accessobject.h
@@ -46,19 +46,19 @@
 #define AC_R_PUBLIC	0004
 #define AC_W_PUBLIC	0002
 
-extern DL_IMPORT PyTypeObject Accesstype;
+extern DL_IMPORT PyTypeObject PyAccess_Type;
 
-#define PyAccess_Check(v) ((v)->ob_type == &Accesstype)
+#define PyAccess_Check(v) ((v)->ob_type == &PyAccess_Type)
 
-PyObject *newaccessobject Py_PROTO((PyObject *, PyObject *, PyTypeObject *, int));
-PyObject *getaccessvalue Py_PROTO((PyObject *, PyObject *));
-int setaccessvalue Py_PROTO((PyObject *, PyObject *, PyObject *));
+PyObject *PyAccess_FromValue Py_PROTO((PyObject *, PyObject *, PyTypeObject *, int));
+PyObject *PyAccess_AsValue Py_PROTO((PyObject *, PyObject *));
+int PyAccess_SetValue Py_PROTO((PyObject *, PyObject *, PyObject *));
 
-void setaccessowner Py_PROTO((PyObject *, PyObject *));
-PyObject *cloneaccessobject Py_PROTO((PyObject *));
-int hasaccessvalue Py_PROTO((PyObject *));
+void PyAccess_SetOwner Py_PROTO((PyObject *, PyObject *));
+PyObject *PyAccess_Clone Py_PROTO((PyObject *));
+int PyAccess_HasValue Py_PROTO((PyObject *));
 
-extern DL_IMPORT PyTypeObject Anynumbertype, Anysequencetype, Anymappingtype;
+extern DL_IMPORT PyTypeObject PyAnyNumber_Type, PyAnySequence_Type, PyAnyMapping_Type;
 
 #ifdef __cplusplus
 }
diff --git a/Include/allobjects.h b/Include/allobjects.h
index 3995a2e..5ce324d 100644
--- a/Include/allobjects.h
+++ b/Include/allobjects.h
@@ -64,7 +64,7 @@
 #include "stringobject.h"
 #include "tupleobject.h"
 #include "listobject.h"
-#include "dictobject.h"
+#include "mappingobject.h"
 #include "methodobject.h"
 #include "moduleobject.h"
 #include "funcobject.h"
diff --git a/Include/bltinmodule.h b/Include/bltinmodule.h
index 7f09f7c..8f39df4 100644
--- a/Include/bltinmodule.h
+++ b/Include/bltinmodule.h
@@ -31,6 +31,7 @@
 /* Built-in module interface */
 
 extern PyObject *getbuiltindict Py_PROTO(());
+extern PyObject *getbuiltinmod Py_PROTO(());
 
 #ifdef __cplusplus
 }
diff --git a/Include/dictobject.h b/Include/dictobject.h
index a14661e..6c22093 100644
--- a/Include/dictobject.h
+++ b/Include/dictobject.h
@@ -32,20 +32,6 @@
 
 #include "mappingobject.h"
 
-#define PyDict_Check(op) is_mappingobject(op)
-
-#define newdictobject PyDict_New
-
-extern PyObject *PyDict_GetItemString Py_PROTO((PyObject *dp, char *key));
-extern int PyDict_SetItemString Py_PROTO((PyObject *dp, char *key, PyObject *item));
-extern int PyDict_DelItemString Py_PROTO((PyObject *dp, char *key));
-
-#define getdictkeys PyDict_Keys
-
-#define dict2lookup PyDict_GetItem
-#define dict2insert PyDict_SetItem
-#define dict2remove PyDict_DelItem
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/Include/errors.h b/Include/errors.h
index 2fa551a..893bc90 100755
--- a/Include/errors.h
+++ b/Include/errors.h
@@ -68,7 +68,7 @@
 
 extern void PyErr_BadInternalCall Py_PROTO((void));
 
-extern int sigcheck Py_PROTO((void)); /* In sigcheck.c or signalmodule.c */
+extern int PyErr_CheckSignals Py_PROTO((void)); /* In sigcheck.c or signalmodule.c */
 
 #ifdef __cplusplus
 }
diff --git a/Include/fileobject.h b/Include/fileobject.h
index b39d947..85c98c6 100644
--- a/Include/fileobject.h
+++ b/Include/fileobject.h
@@ -35,11 +35,11 @@
 #define PyFile_Check(op) ((op)->ob_type == &PyFile_Type)
 
 extern PyObject *PyFile_FromString Py_PROTO((char *, char *));
-extern void setfilebufsize Py_PROTO((PyObject *, int));
+extern void PyFile_SetBufSize Py_PROTO((PyObject *, int));
 extern PyObject *PyFile_FromFile
 	Py_PROTO((FILE *, char *, char *, int (*)Py_FPROTO((FILE *))));
 extern FILE *PyFile_AsFile Py_PROTO((PyObject *));
-extern PyObject *getfilename Py_PROTO((PyObject *));
+extern PyObject *PyFile_Name Py_PROTO((PyObject *));
 extern PyObject *PyFile_GetLine Py_PROTO((PyObject *, int));
 
 #ifdef __cplusplus
diff --git a/Include/frameobject.h b/Include/frameobject.h
index 19534d5..949016a 100644
--- a/Include/frameobject.h
+++ b/Include/frameobject.h
@@ -72,7 +72,7 @@
 
 /* The rest of the interface is specific for frame objects */
 
-/* List access macros */
+/* Tuple access macros */
 
 #ifdef NDEBUG
 #define GETITEM(v, i) PyTuple_GET_ITEM((PyTupleObject *)(v), (i))
@@ -103,8 +103,8 @@
 
 /* Conversions between "fast locals" and locals in dictionary */
 
-void locals_2_fast Py_PROTO((PyFrameObject *, int));
-void fast_2_locals Py_PROTO((PyFrameObject *));
+void PyFrame_LocalsToFast Py_PROTO((PyFrameObject *, int));
+void PyFrame_FastToLocals Py_PROTO((PyFrameObject *));
 
 #ifdef __cplusplus
 }
diff --git a/Include/funcobject.h b/Include/funcobject.h
index 877faff..d33cad7 100644
--- a/Include/funcobject.h
+++ b/Include/funcobject.h
@@ -47,8 +47,8 @@
 extern PyObject *PyFunction_New Py_PROTO((PyObject *, PyObject *));
 extern PyObject *PyFunction_GetCode Py_PROTO((PyObject *));
 extern PyObject *PyFunction_GetGlobals Py_PROTO((PyObject *));
-extern PyObject *getfuncargstuff Py_PROTO((PyObject *, int *));
-extern int     setfuncargstuff Py_PROTO((PyObject *, int, PyObject *));
+extern PyObject *PyFunction_GetArgStuff Py_PROTO((PyObject *, int *));
+extern int PyFunction_SetArgStuff Py_PROTO((PyObject *, int, PyObject *));
 
 #ifdef __cplusplus
 }
diff --git a/Include/listobject.h b/Include/listobject.h
index 083a44b..47d30e4 100644
--- a/Include/listobject.h
+++ b/Include/listobject.h
@@ -62,6 +62,7 @@
 extern PyObject *PyList_GetSlice Py_PROTO((PyObject *, int, int));
 extern int PyList_SetSlice Py_PROTO((PyObject *, int, int, PyObject *));
 extern int PyList_Sort Py_PROTO((PyObject *));
+extern int PyList_Reverse Py_PROTO((PyObject *));
 extern PyObject *listtuple Py_PROTO((PyObject *));
 
 /* Macro, trading safety for speed */
diff --git a/Include/longobject.h b/Include/longobject.h
index bc6a7fe..2a34417 100644
--- a/Include/longobject.h
+++ b/Include/longobject.h
@@ -41,8 +41,7 @@
 extern long PyLong_AsLong Py_PROTO((PyObject *));
 extern double PyLong_AsDouble Py_PROTO((PyObject *));
 
-PyObject *PyLong_FromString Py_PROTO((char *, int));
-PyObject *long_escan Py_PROTO((char *, char **, int));
+PyObject *PyLong_FromString Py_PROTO((char *, char **, int));
 
 #ifdef __cplusplus
 }
diff --git a/Include/mappingobject.h b/Include/mappingobject.h
index dbbe1ab..f8e838c 100644
--- a/Include/mappingobject.h
+++ b/Include/mappingobject.h
@@ -28,11 +28,12 @@
 
 ******************************************************************/
 
-/* Mapping object type -- mapping from hashable object to object */
+/* Dictionary object type -- mapping from hashable object to object */
+/* NB Should be moved back to dictobject.h */
 
-extern DL_IMPORT PyTypeObject Mappingtype;
+extern DL_IMPORT PyTypeObject PyDict_Type;
 
-#define is_mappingobject(op) ((op)->ob_type == &Mappingtype)
+#define PyDict_Check(op) ((op)->ob_type == &PyDict_Type)
 
 extern PyObject *PyDict_New Py_PROTO((void));
 extern PyObject *PyDict_GetItem Py_PROTO((PyObject *mp, PyObject *key));
@@ -44,7 +45,11 @@
 extern PyObject *PyDict_Keys Py_PROTO((PyObject *mp));
 extern PyObject *PyDict_Values Py_PROTO((PyObject *mp));
 extern PyObject *PyDict_Items Py_PROTO((PyObject *mp));
-extern int getmappingsize Py_PROTO((PyObject *mp));
+extern int PyDict_Size Py_PROTO((PyObject *mp));
+
+extern PyObject *PyDict_GetItemString Py_PROTO((PyObject *dp, char *key));
+extern int PyDict_SetItemString Py_PROTO((PyObject *dp, char *key, PyObject *item));
+extern int PyDict_DelItemString Py_PROTO((PyObject *dp, char *key));
 
 #ifdef __cplusplus
 }
diff --git a/Include/marshal.h b/Include/marshal.h
index e5ee545..55396d5 100644
--- a/Include/marshal.h
+++ b/Include/marshal.h
@@ -31,11 +31,11 @@
 /* Interface for marshal.c */
 
 void PyMarshal_WriteLongToFile Py_PROTO((long, FILE *));
-void wr_short Py_PROTO((int, FILE *));
+void PyMarshal_WriteShortToFile Py_PROTO((int, FILE *));
 void PyMarshal_WriteObjectToFile Py_PROTO((PyObject *, FILE *));
 
 long PyMarshal_ReadLongFromFile Py_PROTO((FILE *));
-int rd_short Py_PROTO((FILE *));
+int PyMarshal_ReadShortFromFile Py_PROTO((FILE *));
 PyObject *PyMarshal_ReadObjectFromFile Py_PROTO((FILE *));
 PyObject *PyMarshal_ReadObjectFromString Py_PROTO((char *, int));
 
diff --git a/Include/object.h b/Include/object.h
index e2d0329..a9c7dda 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -244,10 +244,10 @@
 /* Generic operations on objects */
 extern int PyObject_Print Py_PROTO((PyObject *, FILE *, int));
 extern PyObject * PyObject_Repr Py_PROTO((PyObject *));
-extern PyObject * strobject Py_PROTO((PyObject *));
+extern PyObject * PyObject_Str Py_PROTO((PyObject *));
 extern int PyObject_Compare Py_PROTO((PyObject *, PyObject *));
 extern PyObject *PyObject_GetAttrString Py_PROTO((PyObject *, char *));
-extern int hasattr Py_PROTO((PyObject *, char *));
+extern int PyObject_HasAttrString Py_PROTO((PyObject *, char *));
 extern PyObject *PyObject_GetAttr Py_PROTO((PyObject *, PyObject *));
 extern int PyObject_SetAttr Py_PROTO((PyObject *, PyObject *, PyObject *));
 extern long PyObject_Hash Py_PROTO((PyObject *));
diff --git a/Include/pyerrors.h b/Include/pyerrors.h
index 2fa551a..893bc90 100644
--- a/Include/pyerrors.h
+++ b/Include/pyerrors.h
@@ -68,7 +68,7 @@
 
 extern void PyErr_BadInternalCall Py_PROTO((void));
 
-extern int sigcheck Py_PROTO((void)); /* In sigcheck.c or signalmodule.c */
+extern int PyErr_CheckSignals Py_PROTO((void)); /* In sigcheck.c or signalmodule.c */
 
 #ifdef __cplusplus
 }
diff --git a/Include/pythonrun.h b/Include/pythonrun.h
index cecb0cc..837d2f5 100644
--- a/Include/pythonrun.h
+++ b/Include/pythonrun.h
@@ -54,7 +54,7 @@
 
 void Py_Exit Py_PROTO((int));
 
-void cleanup Py_PROTO((void));
+void Py_Cleanup Py_PROTO((void));
 
 #ifdef __cplusplus
 }
diff --git a/Include/rangeobject.h b/Include/rangeobject.h
index f7ed0f1..f8b466c 100644
--- a/Include/rangeobject.h
+++ b/Include/rangeobject.h
@@ -25,17 +25,15 @@
 /* Range object interface */
 
 /*
-123456789-123456789-123456789-123456789-123456789-123456789-123456789-12
-
-rangeobject represents an integer range.  This is an immutable object;
+A range object represents an integer range.  This is an immutable object;
 a range cannot change its value after creation.
 
 Range objects behave like the corresponding tuple objects except that
 they are represented by a start, stop, and step datamembers.
 */
 
-extern DL_IMPORT PyTypeObject Rangetype;
+extern DL_IMPORT PyTypeObject PyRange_Type;
 
-#define is_rangeobject(op) ((op)->ob_type == &Rangetype)
+#define PyRange_Check(op) ((op)->ob_type == &PyRange_Type)
 
-extern PyObject *newrangeobject Py_PROTO((long, long, long, int));
+extern PyObject *PyRange_New Py_PROTO((long, long, long, int));
diff --git a/Include/rename2.h b/Include/rename2.h
index 5031b83..e955346 100644
--- a/Include/rename2.h
+++ b/Include/rename2.h
@@ -48,6 +48,12 @@
 #define newaccessobject PyAccess_FromValue
 #define getaccessvalue PyAccess_AsValue
 #define setaccessvalue PyAccess_SetValue
+#define setaccessowner PyAccess_SetOwner
+#define cloneaccessobject PyAccess_Clone
+#define hasaccessvalue PyAccess_HasValue
+#define Anynumbertype PyAnyNumber_Type
+#define Anysequencetype PyAnySequence_Type
+#define Anymappingtype PyAnyMapping_Type
 
 #ifdef Py_TRACE_REFS
 #define TRACE_REFS
@@ -68,6 +74,7 @@
 #define threads_started _PyThread_Started
 #define tok_name _PyParser_TokenNames
 #define verbose Py_VerboseFlag
+#define suppress_print Py_SuppressPrintingFlag
 #define AccessError PyExc_AccessError
 #define AttributeError PyExc_AttributeError
 #define ConflictError PyExc_ConflictError
@@ -95,6 +102,7 @@
 #define Typetype PyType_Type
 #define Listtype PyList_Type
 #define Dicttype PyDict_Type
+#define Mappingtype PyDict_Type
 #define Tupletype PyTuple_Type
 #define Filetype PyFile_Type
 #define Classtype PyClass_Type
@@ -105,6 +113,7 @@
 #define Moduletype PyModule_Type
 #define Codetype PyCode_Type
 #define Frametype PyFrame_Type
+#define Rangetype PyRange_Type
 #define floatobject PyFloatObject
 #define intobject PyIntObject
 #define longobject PyLongObject
@@ -150,6 +159,7 @@
 #define is_typeobject PyType_Check
 #define is_listobject PyList_Check
 #define is_dictobject PyDict_Check
+#define is_mappingobject PyDict_Check
 #define is_tupleobject PyTuple_Check
 #define is_fileobject PyFile_Check
 #define is_classobject PyClass_Check
@@ -170,11 +180,14 @@
 #define cmpobject PyObject_Compare
 #define getattr PyObject_GetAttrString
 #define getattro PyObject_GetAttr
+#define hasattr PyObject_HasAttrString
+#define hasattro PyObject_HasAttr
 #define hashobject PyObject_Hash
 #define newobject _PyObject_New
 #define newvarobject _PyObject_NewVar
 #define printobject PyObject_Print
 #define reprobject PyObject_Repr
+#define strobject PyObject_Str
 #define setattr PyObject_SetAttrString
 #define setattro PyObject_SetAttr
 #define testbool PyObject_IsTrue
@@ -185,18 +198,21 @@
 #define newfloatobject PyFloat_FromDouble
 #define getintvalue PyInt_AsLong
 #define GETINTVALUE PyInt_AS_LONG
+#define getmaxint PyInt_GetMax
 #define newintobject PyInt_FromLong
 #define alloclongobject _PyLong_New
 #define dgetlongvalue PyLong_AsDouble
 #define dnewlongobject PyLong_FromDouble
 #define getlongvalue PyLong_AsLong
-#define long_scan PyLong_FromString
+#define long_escan PyLong_FromString
+#define long_scan(a, b) PyLong_FromString((a), (char **)0, (b))
 #define newlongobject PyLong_FromLong
 #define formatstring PyString_Format
 #define getstringsize PyString_Size
 #define getstringvalue PyString_AsString
 #define GETSTRINGVALUE PyString_AS_STRING
 #define joinstring PyString_Concat
+#define joinstring_decref PyString_ConcatAndDel
 #define newsizedstringobject PyString_FromStringAndSize
 #define newstringobject PyString_FromString
 #define resizestring _PyString_Resize
@@ -210,26 +226,40 @@
 #define setlistitem PyList_SetItem
 #define setlistslice PyList_SetSlice
 #define sortlist PyList_Sort
+#define reverselist PyList_Reverse
+#define listtuple PyList_AsTuple
 #define dictinsert PyDict_SetItemString
 #define dictlookup PyDict_GetItemString
 #define dictremove PyDict_DelItemString
 #define getmappingitems PyDict_Items
+#define getdictitems PyDict_Items
 #define getmappingkeys PyDict_Keys
+#define getdictkeys PyDict_Keys
 #define getmappingvalues PyDict_Values
+#define getdictvalues PyDict_Values
+#define getmappingsize PyDict_Size
+#define getdictsize PyDict_Size
 #define mappingclear PyDict_Clear
 #define mappinggetnext PyDict_Next
 #define mappinginsert PyDict_SetItem
+#define dict2insert PyDict_SetItem
 #define mappinglookup PyDict_GetItem
+#define dict2lookup PyDict_GetItem
 #define mappingremove PyDict_DelItem
+#define dict2remove PyDict_DelItem
 #define newmappingobject PyDict_New
+#define newdictobject PyDict_New
 #define gettupleitem PyTuple_GetItem
 #define GETTUPLEITEM PyTuple_GET_ITEM
 #define gettuplesize PyTuple_Size
 #define gettupleslice PyTuple_GetSlice
 #define newtupleobject PyTuple_New
 #define settupleitem PyTuple_SetItem
+#define resizetuple _PyTuple_Resize
 #define filegetline PyFile_GetLine
 #define getfilefile PyFile_AsFile
+#define getfilename PyFile_Name
+#define setfilebufsize PyFile_SetBufSize
 #define newfileobject PyFile_FromString
 #define newopenfileobject PyFile_FromFile
 #define softspace PyFile_SoftSpace
@@ -242,14 +272,22 @@
 #define newclassobject PyClass_New
 #define newinstancemethodobject PyMethod_New
 #define newinstanceobject PyInstance_New
+#define instancebinop PyInstance_DoBinOp
 #define block PyTryBlock
 #define extend_stack PyFrame_ExtendStack
 #define newframeobject PyFrame_New
 #define pop_block PyFrame_BlockPop
 #define setup_block PyFrame_BlockSetup
+#define fast_2_locals PyFrame_FastToLocals
+#define locals_2_fast PyFrame_LocalsToFast
 #define getfunccode PyFunction_GetCode
 #define getfuncglobals PyFunction_GetGlobals
+#define getfuncargstuff PyFunction_GetArgStuff
+#define setfuncargstuff PyFunction_SetArgStuff
+#define mystrtol PyOS_strtol
+#define mystrtoul PyOS_strtoul
 #define newfuncobject PyFunction_New
+#define newrangeobject PyRange_New
 #define method PyCFunction
 #define findmethod Py_FindMethod
 #define getmethod PyCFunction_GetFunction
@@ -299,6 +337,7 @@
 #define add_module PyImport_AddModule
 #define doneimport PyImport_Cleanup
 #define get_modules PyImport_GetModuleDict
+#define get_pyc_magic PyImport_GetMagicNumber
 #define import_module PyImport_ImportModule
 #define init_frozen PyImport_ImportFrozenModule
 #define initimport PyImport_Init
@@ -310,9 +349,11 @@
 #define initmodule Py_InitModule
 #define initmodule4 Py_InitModule4
 #define rd_long PyMarshal_ReadLongFromFile
+#define rd_short PyMarshal_ReadShortFromFile
 #define rd_object PyMarshal_ReadObjectFromFile
 #define rds_object PyMarshal_ReadObjectFromString
 #define wr_long PyMarshal_WriteLongToFile
+#define wr_short PyMarshal_WriteShortToFile
 #define wr_object PyMarshal_WriteObjectToFile
 #define initsys PySys_Init
 #define setpythonargv PySys_SetArgv
@@ -323,6 +364,7 @@
 #define compile_string Py_CompileString
 #define fatal Py_FatalError
 #define goaway Py_Exit
+#define cleanup Py_Cleanup
 #define initall Py_Initialize
 #define print_error PyErr_Print
 #define parse_file PyParser_SimpleParseFile
@@ -339,6 +381,7 @@
 #define mkvalue Py_BuildValue
 #define vmkvalue Py_VaBuildValue
 #define getargs PyArg_Parse
+#define vgetargs PyArgs_VaParse
 #define newgetargs PyArg_ParseTuple
 #define getichararg PyArg_GetChar
 #define getidoublearray PyArg_GetDoubleArray
@@ -372,6 +415,10 @@
 #define initintr PyOS_InitInterrupts
 #define intrcheck PyOS_InterruptOccurred
 #define getmtime PyOS_GetLastModificationTime
+#define my_readline PyOS_Readline
+#define realmain Py_Main
+#define ref_total _Py_RefTotal
+#define sigcheck PyErr_CheckSignals
 
 #ifdef __cplusplus
 }
diff --git a/Include/stringobject.h b/Include/stringobject.h
index 1dac98e..d3b6ce4 100644
--- a/Include/stringobject.h
+++ b/Include/stringobject.h
@@ -31,8 +31,6 @@
 /* String object interface */
 
 /*
-123456789-123456789-123456789-123456789-123456789-123456789-123456789-12
-
 Type PyStringObject represents a character string.  An extra zero byte is
 reserved at the end to ensure it is zero-terminated, but a size is
 present so strings with null bytes in them can be represented.  This
@@ -66,7 +64,7 @@
 extern int PyString_Size Py_PROTO((PyObject *));
 extern char *PyString_AsString Py_PROTO((PyObject *));
 extern void PyString_Concat Py_PROTO((PyObject **, PyObject *));
-extern void joinstring_decref Py_PROTO((PyObject **, PyObject *));
+extern void PyString_ConcatAndDel Py_PROTO((PyObject **, PyObject *));
 extern int _PyString_Resize Py_PROTO((PyObject **, int));
 extern PyObject *PyString_Format Py_PROTO((PyObject *, PyObject *));
 
diff --git a/Include/tupleobject.h b/Include/tupleobject.h
index 17d6c4a..ff60672 100644
--- a/Include/tupleobject.h
+++ b/Include/tupleobject.h
@@ -58,7 +58,7 @@
 extern PyObject *PyTuple_GetItem Py_PROTO((PyObject *, int));
 extern int PyTuple_SetItem Py_PROTO((PyObject *, int, PyObject *));
 extern PyObject *PyTuple_GetSlice Py_PROTO((PyObject *, int, int));
-extern int resizetuple Py_PROTO((PyObject **, int, int));
+extern int _PyTuple_Resize Py_PROTO((PyObject **, int, int));
 
 /* Macro, trading safety for speed */
 #define PyTuple_GET_ITEM(op, i) ((op)->ob_item[i])
