Revert backwards-incompatible const changes.
diff --git a/Objects/abstract.c b/Objects/abstract.c
index a7cc0d6..dc46193 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -221,7 +221,7 @@
 			  Py_ssize_t *buffer_len)
 {
 	PyBufferProcs *pb;
-	const char *pp;
+	char *pp;
 	Py_ssize_t len;
 
 	if (obj == NULL || buffer == NULL || buffer_len == NULL) {
diff --git a/Objects/boolobject.c b/Objects/boolobject.c
index 677a98b..f2429fe 100644
--- a/Objects/boolobject.c
+++ b/Objects/boolobject.c
@@ -50,7 +50,7 @@
 static PyObject *
 bool_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 {
-	static const char *kwlist[] = {"x", 0};
+	static char *kwlist[] = {"x", 0};
 	PyObject *x = Py_False;
 	long ok;
 
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 9a36f7d..34afb9e 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -159,7 +159,7 @@
 class_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 {
 	PyObject *name, *bases, *dict;
-	static const char *kwlist[] = {"name", "bases", "dict", 0};
+	static char *kwlist[] = {"name", "bases", "dict", 0};
 
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, "SOO", kwlist,
 					 &name, &bases, &dict))
diff --git a/Objects/complexobject.c b/Objects/complexobject.c
index f29a90f..5c84eff 100644
--- a/Objects/complexobject.c
+++ b/Objects/complexobject.c
@@ -829,7 +829,7 @@
 	Py_complex cr, ci;
 	int own_r = 0;
 	static PyObject *complexstr;
-	static const char *kwlist[] = {"real", "imag", 0};
+	static char *kwlist[] = {"real", "imag", 0};
 
 	r = Py_False;
 	i = NULL;
diff --git a/Objects/descrobject.c b/Objects/descrobject.c
index 6972a69..b96ad6e 100644
--- a/Objects/descrobject.c
+++ b/Objects/descrobject.c
@@ -1182,7 +1182,7 @@
 property_init(PyObject *self, PyObject *args, PyObject *kwds)
 {
 	PyObject *get = NULL, *set = NULL, *del = NULL, *doc = NULL;
-	static const char *kwlist[] = {"fget", "fset", "fdel", "doc", 0};
+	static char *kwlist[] = {"fget", "fset", "fdel", "doc", 0};
 	propertyobject *gs = (propertyobject *)self;
 
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, "|OOOO:property",
diff --git a/Objects/enumobject.c b/Objects/enumobject.c
index ea85e3c..5999ae9 100644
--- a/Objects/enumobject.c
+++ b/Objects/enumobject.c
@@ -16,7 +16,7 @@
 {
 	enumobject *en;
 	PyObject *seq = NULL;
-	static const char *kwlist[] = {"sequence", 0};
+	static char *kwlist[] = {"sequence", 0};
 
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, "O:enumerate", kwlist,
 					 &seq))
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index e4fffdd..d535869 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -1925,7 +1925,7 @@
 {
 	PyFileObject *foself = (PyFileObject *)self;
 	int ret = 0;
-	static const char *kwlist[] = {"name", "mode", "buffering", 0};
+	static char *kwlist[] = {"name", "mode", "buffering", 0};
 	char *name = NULL;
 	char *mode = "r";
 	int bufsize = -1;
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index e1e063b..bc19a5b 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -940,7 +940,7 @@
 float_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 {
 	PyObject *x = Py_False; /* Integer zero */
-	static const char *kwlist[] = {"x", 0};
+	static char *kwlist[] = {"x", 0};
 
 	if (type != &PyFloat_Type)
 		return float_subtype_new(type, args, kwds); /* Wimp out */
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index 6c68349..00ae2eb 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -364,7 +364,7 @@
 	PyObject *closure = Py_None;
 	PyFunctionObject *newfunc;
 	Py_ssize_t nfree, nclosure;
-	static const char *kwlist[] = {"code", "globals", "name",
+	static char *kwlist[] = {"code", "globals", "name",
 				 "argdefs", "closure", 0};
 
 	if (!PyArg_ParseTupleAndKeywords(args, kw, "O!O!|OOO:function",
diff --git a/Objects/intobject.c b/Objects/intobject.c
index 352210c..b0876ae 100644
--- a/Objects/intobject.c
+++ b/Objects/intobject.c
@@ -950,7 +950,7 @@
 {
 	PyObject *x = NULL;
 	int base = -909;
-	static const char *kwlist[] = {"x", "base", 0};
+	static char *kwlist[] = {"x", "base", 0};
 
 	if (type != &PyInt_Type)
 		return int_subtype_new(type, args, kwds); /* Wimp out */
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 8b5771b..0ff61e2 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -1986,7 +1986,7 @@
 	PyObject *keyfunc = NULL;
 	Py_ssize_t i;
 	PyObject *key, *value, *kvpair;
-	static const char *kwlist[] = {"cmp", "key", "reverse", 0};
+	static char *kwlist[] = {"cmp", "key", "reverse", 0};
 
 	assert(self != NULL);
 	assert (PyList_Check(self));
@@ -2360,7 +2360,7 @@
 list_init(PyListObject *self, PyObject *args, PyObject *kw)
 {
 	PyObject *arg = NULL;
-	static const char *kwlist[] = {"sequence", 0};
+	static char *kwlist[] = {"sequence", 0};
 
 	if (!PyArg_ParseTupleAndKeywords(args, kw, "|O:list", kwlist, &arg))
 		return -1;
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 17aab35..345d3b4 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -3008,7 +3008,7 @@
 {
 	PyObject *x = NULL;
 	int base = -909;		     /* unlikely! */
-	static const char *kwlist[] = {"x", "base", 0};
+	static char *kwlist[] = {"x", "base", 0};
 
 	if (type != &PyLong_Type)
 		return long_subtype_new(type, args, kwds); /* Wimp out */
diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c
index dfcf39c..8124968 100644
--- a/Objects/moduleobject.c
+++ b/Objects/moduleobject.c
@@ -149,7 +149,7 @@
 static int
 module_init(PyModuleObject *m, PyObject *args, PyObject *kwds)
 {
-	static const char *kwlist[] = {"name", "doc", NULL};
+	static char *kwlist[] = {"name", "doc", NULL};
 	PyObject *dict, *name = Py_None, *doc = Py_None;
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, "S|O:module.__init__",
                                          kwlist, &name, &doc))
diff --git a/Objects/object.c b/Objects/object.c
index 2a1f45a..606b3fc 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -1023,7 +1023,7 @@
 	PyObject *w, *res;
 
 	if (v->ob_type->tp_getattr != NULL)
-		return (*v->ob_type->tp_getattr)(v, name);
+		return (*v->ob_type->tp_getattr)(v, (char*)name);
 	w = PyString_InternFromString(name);
 	if (w == NULL)
 		return NULL;
@@ -1051,7 +1051,7 @@
 	int res;
 
 	if (v->ob_type->tp_setattr != NULL)
-		return (*v->ob_type->tp_setattr)(v, name, w);
+		return (*v->ob_type->tp_setattr)(v, (char*)name, w);
 	s = PyString_InternFromString(name);
 	if (s == NULL)
 		return -1;
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 8480308..4fe24a3 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -3346,7 +3346,7 @@
 string_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 {
 	PyObject *x = NULL;
-	static const char *kwlist[] = {"object", 0};
+	static char *kwlist[] = {"object", 0};
 
 	if (type != &PyString_Type)
 		return str_subtype_new(type, args, kwds);
diff --git a/Objects/structseq.c b/Objects/structseq.c
index b266d6a..218d0b4 100644
--- a/Objects/structseq.c
+++ b/Objects/structseq.c
@@ -97,7 +97,7 @@
 	PyObject *ob;
 	PyStructSequence *res = NULL;
 	Py_ssize_t len, min_len, max_len, i, n_unnamed_fields;
-	static const char *kwlist[] = {"sequence", "dict", 0};
+	static char *kwlist[] = {"sequence", "dict", 0};
 
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:structseq", 
 					 kwlist, &arg, &dict))
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index 95debbb..c0383a1 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -531,7 +531,7 @@
 tuple_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 {
 	PyObject *arg = NULL;
-	static const char *kwlist[] = {"sequence", 0};
+	static char *kwlist[] = {"sequence", 0};
 
 	if (type != &PyTuple_Type)
 		return tuple_subtype_new(type, args, kwds);
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index fd23bfe..6072c08 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -1593,7 +1593,7 @@
 type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
 {
 	PyObject *name, *bases, *dict;
-	static const char *kwlist[] = {"name", "bases", "dict", 0};
+	static char *kwlist[] = {"name", "bases", "dict", 0};
 	PyObject *slots, *tmp, *newslots;
 	PyTypeObject *type, *base, *tmptype, *winner;
 	PyHeapTypeObject *et;
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index d353f1f..3aaf98e 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -7259,7 +7259,7 @@
 unicode_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 {
         PyObject *x = NULL;
-	static const char *kwlist[] = {"string", "encoding", "errors", 0};
+	static char *kwlist[] = {"string", "encoding", "errors", 0};
 	char *encoding = NULL;
 	char *errors = NULL;
 
diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c
index 39c5db2..4a64ef7 100644
--- a/Objects/weakrefobject.c
+++ b/Objects/weakrefobject.c
@@ -126,9 +126,9 @@
 static PyObject *
 weakref_call(PyWeakReference *self, PyObject *args, PyObject *kw)
 {
-    static const char *argnames[] = {NULL};
+    static char *kwlist[] = {NULL};
 
-    if (PyArg_ParseTupleAndKeywords(args, kw, ":__call__", argnames)) {
+    if (PyArg_ParseTupleAndKeywords(args, kw, ":__call__", kwlist)) {
         PyObject *object = PyWeakref_GET_OBJECT(self);
         Py_INCREF(object);
         return (object);