diff --git a/Include/Python.h b/Include/Python.h
index 490848d..63ffb1a 100644
--- a/Include/Python.h
+++ b/Include/Python.h
@@ -1,3 +1,116 @@
-/* Header file to be included by modules using new naming conventions */
-#define Py_USE_NEW_NAMES
-#include "allobjects.h"
+#ifndef Py_ALLOBJECTS_H
+#define Py_ALLOBJECTS_H
+/* Since this is a "meta-include" file, no #ifdef __cplusplus / extern "C" { */
+
+/***********************************************************
+Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
+The Netherlands.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the names of Stichting Mathematisch
+Centrum or CWI or Corporation for National Research Initiatives or
+CNRI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+While CWI is the initial source for this software, a modified version
+is made available by the Corporation for National Research Initiatives
+(CNRI) at the Internet address ftp://ftp.python.org.
+
+STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
+CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+******************************************************************/
+
+/* Include nearly all Python header files */
+
+#include "config.h"
+
+/* config.h may or may not define DL_IMPORT */
+#ifndef DL_IMPORT	/* declarations for DLL import/export */
+#define DL_IMPORT(RTYPE) RTYPE
+#endif
+
+#ifdef SYMANTEC__CFM68K__
+#define UsingSharedLibs
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "myproto.h"
+
+#ifdef SYMANTEC__CFM68K__
+#pragma lib_export on
+#endif
+
+#include "object.h"
+#include "objimpl.h"
+
+#include "pydebug.h"
+
+#include "accessobject.h"
+#include "intobject.h"
+#include "longobject.h"
+#include "floatobject.h"
+#ifndef WITHOUT_COMPLEX
+#include "complexobject.h"
+#endif
+#include "rangeobject.h"
+#include "stringobject.h"
+#include "tupleobject.h"
+#include "listobject.h"
+#include "mappingobject.h"
+#include "methodobject.h"
+#include "moduleobject.h"
+#include "funcobject.h"
+#include "classobject.h"
+#include "fileobject.h"
+#include "cobject.h"
+#include "traceback.h"
+#include "sliceobject.h"
+
+#include "pyerrors.h"
+#include "mymalloc.h"
+
+#include "modsupport.h"
+#include "ceval.h"
+#include "pythonrun.h"
+#include "sysmodule.h"
+#include "intrcheck.h"
+#include "import.h"
+#include "bltinmodule.h"
+
+#include "pystate.h"
+
+#include "abstract.h"
+
+#define PyArg_GetInt(v, a)	PyArg_Parse((v), "i", (a))
+#define PyArg_NoArgs(v)		PyArg_Parse(v, "")
+
+/* Convert a possibly signed character to a nonnegative int */
+/* XXX This assumes characters are 8 bits wide */
+#ifdef __CHAR_UNSIGNED__
+#define Py_CHARMASK(c)		(c)
+#else
+#define Py_CHARMASK(c)		((c) & 0xff)
+#endif
+
+#include "pyfpe.h"
+
+#endif /* !Py_ALLOBJECTS_H */
diff --git a/Include/allobjects.h b/Include/allobjects.h
deleted file mode 100644
index f2961c0..0000000
--- a/Include/allobjects.h
+++ /dev/null
@@ -1,118 +0,0 @@
-#ifndef Py_ALLOBJECTS_H
-#define Py_ALLOBJECTS_H
-/* Since this is a "meta-include" file, no #ifdef __cplusplus / extern "C" { */
-
-/***********************************************************
-Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI or Corporation for National Research Initiatives or
-CNRI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-While CWI is the initial source for this software, a modified version
-is made available by the Corporation for National Research Initiatives
-(CNRI) at the Internet address ftp://ftp.python.org.
-
-STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
-CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/* Include nearly all Python header files */
-
-#include "config.h"
-
-/* config.h may or may not define DL_IMPORT */
-#ifndef DL_IMPORT	/* declarations for DLL import/export */
-#define DL_IMPORT(RTYPE) RTYPE
-#endif
-
-#ifdef SYMANTEC__CFM68K__
-#define UsingSharedLibs
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#include "myproto.h"
-
-#ifdef SYMANTEC__CFM68K__
-#pragma lib_export on
-#endif
-
-#include "object.h"
-#include "objimpl.h"
-
-#include "pydebug.h"
-
-#include "accessobject.h"
-#include "intobject.h"
-#include "longobject.h"
-#include "floatobject.h"
-#ifndef WITHOUT_COMPLEX
-#include "complexobject.h"
-#endif
-#include "rangeobject.h"
-#include "stringobject.h"
-#include "tupleobject.h"
-#include "listobject.h"
-#include "mappingobject.h"
-#include "methodobject.h"
-#include "moduleobject.h"
-#include "funcobject.h"
-#include "classobject.h"
-#include "fileobject.h"
-#include "cobject.h"
-#include "traceback.h"
-#include "sliceobject.h"
-
-#include "pyerrors.h"
-#include "mymalloc.h"
-
-#include "modsupport.h"
-#include "ceval.h"
-#include "pythonrun.h"
-#include "sysmodule.h"
-#include "intrcheck.h"
-#include "import.h"
-#include "bltinmodule.h"
-
-#include "abstract.h"
-
-#define PyArg_GetInt(v, a)	PyArg_Parse((v), "i", (a))
-#define PyArg_NoArgs(v)		PyArg_Parse(v, "")
-
-/* Convert a possibly signed character to a nonnegative int */
-/* XXX This assumes characters are 8 bits wide */
-#ifdef __CHAR_UNSIGNED__
-#define Py_CHARMASK(c)		(c)
-#else
-#define Py_CHARMASK(c)		((c) & 0xff)
-#endif
-
-#ifndef Py_USE_NEW_NAMES
-#include "rename2.h"
-#endif
-
-#include "pyfpe.h"
-
-#endif /* !Py_ALLOBJECTS_H */
