diff --git a/Include/modsupport.h b/Include/modsupport.h
index 4d26523..b3b30ee 100644
--- a/Include/modsupport.h
+++ b/Include/modsupport.h
@@ -52,8 +52,8 @@
 extern int PyArg_VaParse Py_PROTO((PyObject *, char *, va_list));
 extern PyObject *Py_VaBuildValue Py_PROTO((char *, va_list));
 
-#define PYTHON_API_VERSION 1005
-#define PYTHON_API_STRING "1005"
+#define PYTHON_API_VERSION 1006
+#define PYTHON_API_STRING "1006"
 /* The API version is maintained (independently from the Python version)
    so we can detect mismatches between the interpreter and dynamically
    loaded modules.  These are diagnosticised by an error message but
@@ -67,6 +67,8 @@
    Please add a line or two to the top of this log for each API
    version change:
 
+   11-Oct-1996	GvR	renamed Py_Ellipses to Py_Ellipsis :-(
+
    30-Jul-1996	GvR	Slice and ellipses syntax added
 
    23-Jul-1996	GvR	For 1.4 -- better safe than sorry this time :-)
diff --git a/Include/sliceobject.h b/Include/sliceobject.h
index ac7cd13..6ee4698 100644
--- a/Include/sliceobject.h
+++ b/Include/sliceobject.h
@@ -4,12 +4,12 @@
 extern "C" {
 #endif
 
-/* The unique ellipses object "..." */
+/* The unique ellipsis object "..." */
 
-extern DL_IMPORT(PyObject) _Py_EllipsesObject; /* Don't use this directly */
+extern DL_IMPORT(PyObject) _Py_EllipsisObject; /* Don't use this directly */
 
-#define Py_Ellipses (&_Py_EllipsesObject)
-
+#define Py_Ellipsis (&_Py_EllipsisObject)
+#define Py_Ellipses Py_Ellipsis /* For bad spellers like me :-( */
 
 /* Slice object interface */
 
diff --git a/Lib/types.py b/Lib/types.py
index e1fbc49..c0b3296 100644
--- a/Lib/types.py
+++ b/Lib/types.py
@@ -48,6 +48,6 @@
 	FrameType = type(sys.exc_traceback.tb_frame)
 
 SliceType = type(slice(0))
-EllipsesType = type(Ellipses)
+EllipsisType = type(Ellipsis)
 
 del sys, _f, _C, _x			# Not for export
diff --git a/Objects/sliceobject.c b/Objects/sliceobject.c
index 4b81293..a232296 100644
--- a/Objects/sliceobject.c
+++ b/Objects/sliceobject.c
@@ -1,14 +1,14 @@
 /*
 Written by Jim Hugunin and Chris Chase.
 
-This includes both the singular ellipses object and slice objects.
+This includes both the singular ellipsis object and slice objects.
 
 Guido, feel free to do whatever you want in the way of copyrights
 for this file.
 */
 
 /* 
-Py_Ellipses encodes the '...' rubber index token. It is similar to
+Py_Ellipsis encodes the '...' rubber index token. It is similar to
 the Py_NoneStruct in that there is no way to create other objects of
 this type and there is exactly one in existence.
 */
@@ -16,16 +16,16 @@
 #include "Python.h"
 
 static PyObject *
-ellipses_repr(op)
+ellipsis_repr(op)
 	PyObject *op;
 {
-	return PyString_FromString("Ellipses");
+	return PyString_FromString("Ellipsis");
 }
 
-static PyTypeObject PyEllipses_Type = {
+static PyTypeObject PyEllipsis_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,
-	"ellipses",
+	"ellipsis",
 	0,
 	0,
 	0,		/*tp_dealloc*/ /*never called*/
@@ -33,15 +33,15 @@
 	0,		/*tp_getattr*/
 	0,		/*tp_setattr*/
 	0,		/*tp_compare*/
-	(reprfunc)ellipses_repr, /*tp_repr*/
+	(reprfunc)ellipsis_repr, /*tp_repr*/
 	0,		/*tp_as_number*/
 	0,		/*tp_as_sequence*/
 	0,		/*tp_as_mapping*/
 	0,		/*tp_hash */
 };
 
-PyObject _Py_EllipsesObject = {
-	PyObject_HEAD_INIT(&PyEllipses_Type)
+PyObject _Py_EllipsisObject = {
+	PyObject_HEAD_INIT(&PyEllipsis_Type)
 };
 
 
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index c1c3ed9..cd3d05f 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -1632,7 +1632,9 @@
 	INCREF(builtin_dict);
 	initerrors();
 	(void) dictinsert(builtin_dict, "None", None);
-	(void) dictinsert(builtin_dict, "Ellipses", Py_Ellipses);
+	(void) dictinsert(builtin_dict, "Ellipsis", Py_Ellipsis);
+	/* And once more for bad spellers like me :-( */
+	(void) dictinsert(builtin_dict, "Ellipses", Py_Ellipsis);
 }
 
 
diff --git a/Python/compile.c b/Python/compile.c
index 60bfd6f..88b6710 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1032,7 +1032,7 @@
 	ch = CHILD(n,0);
 	/* check for rubber index */
 	if (TYPE(ch) == DOT && TYPE(CHILD(n,1)) == DOT)
-		com_addoparg(c, LOAD_CONST, com_addconst(c, Py_Ellipses));
+		com_addoparg(c, LOAD_CONST, com_addconst(c, Py_Ellipsis));
 	else {
 		/* check for slice */
 		if ((TYPE(ch) == COLON || NCH(n) > 1))
diff --git a/Python/marshal.c b/Python/marshal.c
index 08ad790..2cd54c6 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -37,7 +37,7 @@
 
 #define TYPE_NULL	'0'
 #define TYPE_NONE	'N'
-#define TYPE_ELLIPSES   '.'
+#define TYPE_ELLIPSIS   '.'
 #define TYPE_INT	'i'
 #define TYPE_FLOAT	'f'
 #define TYPE_COMPLEX	'x'
@@ -130,8 +130,8 @@
 		w_byte(TYPE_NULL, p);
 	else if (v == None)
 		w_byte(TYPE_NONE, p);
-	else if (v == Py_Ellipses)
-	        w_byte(TYPE_ELLIPSES, p);  
+	else if (v == Py_Ellipsis)
+	        w_byte(TYPE_ELLIPSIS, p);  
 	else if (is_intobject(v)) {
 		w_byte(TYPE_INT, p);
 		w_long(getintvalue(v), p);
@@ -325,9 +325,9 @@
 		INCREF(None);
 		return None;
 	
-	case TYPE_ELLIPSES:
-		INCREF(Py_Ellipses);
-		return Py_Ellipses;
+	case TYPE_ELLIPSIS:
+		INCREF(Py_Ellipsis);
+		return Py_Ellipsis;
 	
 	case TYPE_INT:
 		return newintobject(r_long(p));
