diff --git a/Include/tupleobject.h b/Include/tupleobject.h
index 9a61484..bf20854 100644
--- a/Include/tupleobject.h
+++ b/Include/tupleobject.h
@@ -33,7 +33,7 @@
 extern DL_IMPORT(PyObject *) PyTuple_GetItem(PyObject *, int);
 extern DL_IMPORT(int) PyTuple_SetItem(PyObject *, int, PyObject *);
 extern DL_IMPORT(PyObject *) PyTuple_GetSlice(PyObject *, int, int);
-extern DL_IMPORT(int) _PyTuple_Resize(PyObject **, int, int);
+extern DL_IMPORT(int) _PyTuple_Resize(PyObject **, int);
 
 /* Macro, trading safety for speed */
 #define PyTuple_GET_ITEM(op, i) (((PyTupleObject *)(op))->ob_item[i])
diff --git a/Misc/NEWS b/Misc/NEWS
index b960117..be58d95 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -155,6 +155,12 @@
 - Python should compile and run out of the box using the Borland C
   compiler (under Windows), thanks to Stephen Hansen.
 
+C API
+
+- Removed the unused last_is_sticky argument from the internal
+  _PyTuple_Resize().  If this affects you, you were cheating.
+
+
 What's New in Python 2.1 (final)?
 =================================
 
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 86b5c22..ceac18b 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -1851,7 +1851,7 @@
 
 	context->maxsize = maxsize;
 
-	return _PyTuple_Resize(&context->tuple, maxsize, 0) >= 0;
+	return _PyTuple_Resize(&context->tuple, maxsize) >= 0;
 }
 
 static int
@@ -1935,7 +1935,7 @@
 	if (!_flatten1(&context, item,0))
 		return NULL;
 
-	if (_PyTuple_Resize(&context.tuple, context.size, 0))
+	if (_PyTuple_Resize(&context.tuple, context.size))
 		return NULL;
 
 	return context.tuple;
diff --git a/Objects/abstract.c b/Objects/abstract.c
index c1d7789..63fe7d5 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -1220,7 +1220,7 @@
 				n += 10;
 			else
 				n += 100;
-			if (_PyTuple_Resize(&result, n, 0) != 0) {
+			if (_PyTuple_Resize(&result, n) != 0) {
 				Py_DECREF(item);
 				goto Fail;
 			}
@@ -1230,7 +1230,7 @@
 
 	/* Cut tuple back if guess was too large. */
 	if (j < n &&
-	    _PyTuple_Resize(&result, j, 0) != 0)
+	    _PyTuple_Resize(&result, j) != 0)
 		goto Fail;
 
 	Py_DECREF(it);
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index 16e0b12..94f1859 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -488,11 +488,10 @@
    is only one module referencing the object.  You can also think of it
    as creating a new tuple object and destroying the old one, only more
    efficiently.  In any case, don't use this if the tuple may already be
-   known to some other part of the code.  The last_is_sticky is not used
-   and must always be false. */
+   known to some other part of the code. */
 
 int
-_PyTuple_Resize(PyObject **pv, int newsize, int last_is_sticky)
+_PyTuple_Resize(PyObject **pv, int newsize)
 {
 	register PyTupleObject *v;
 	register PyTupleObject *sv;
@@ -500,7 +499,7 @@
 	int sizediff;
 
 	v = (PyTupleObject *) *pv;
-	if (v == NULL || !PyTuple_Check(v) || last_is_sticky ||
+	if (v == NULL || !PyTuple_Check(v) ||
 	    (v->ob_size != 0 && v->ob_refcnt != 1)) {
 		*pv = 0;
 		Py_XDECREF(v);
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 78e2f37..1e9868a 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -2329,7 +2329,7 @@
 		}
 	}
 
-	if (_PyTuple_Resize(&result, j, 0) < 0)
+	if (_PyTuple_Resize(&result, j) < 0)
 		return NULL;
 
 	return result;
