More unconsting.
diff --git a/Modules/_bisectmodule.c b/Modules/_bisectmodule.c
index 64fc046..f8d412a 100644
--- a/Modules/_bisectmodule.c
+++ b/Modules/_bisectmodule.c
@@ -40,7 +40,7 @@
 	int lo = 0;
 	int hi = -1;
 	int index;
-	static const char *keywords[] = {"a", "x", "lo", "hi", NULL};
+	static char *keywords[] = {"a", "x", "lo", "hi", NULL};
 
 	if (!PyArg_ParseTupleAndKeywords(args, kw, "OO|ii:bisect_right",
 		keywords, &list, &item, &lo, &hi))
@@ -70,7 +70,7 @@
 	int lo = 0;
 	int hi = -1;
 	int index;
-	static const char *keywords[] = {"a", "x", "lo", "hi", NULL};
+	static char *keywords[] = {"a", "x", "lo", "hi", NULL};
 
 	if (!PyArg_ParseTupleAndKeywords(args, kw, "OO|ii:insort_right",
 		keywords, &list, &item, &lo, &hi))
@@ -137,7 +137,7 @@
 	int lo = 0;
 	int hi = -1;
 	int index;
-	static const char *keywords[] = {"a", "x", "lo", "hi", NULL};
+	static char *keywords[] = {"a", "x", "lo", "hi", NULL};
 
 	if (!PyArg_ParseTupleAndKeywords(args, kw, "OO|ii:bisect_left",
 		keywords, &list, &item, &lo, &hi))
@@ -167,7 +167,7 @@
 	int lo = 0;
 	int hi = -1;
 	int index;
-	static const char *keywords[] = {"a", "x", "lo", "hi", NULL};
+	static char *keywords[] = {"a", "x", "lo", "hi", NULL};
 
 	if (!PyArg_ParseTupleAndKeywords(args, kw, "OO|ii:insort_left",
 		keywords, &list, &item, &lo, &hi))
diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c
index 9bcb334..647b143 100644
--- a/Modules/_bsddb.c
+++ b/Modules/_bsddb.c
@@ -651,7 +651,7 @@
     int dlen = -1;
     int doff = -1;
     int flags = 0;
-    static const char* kwnames[] = { "flags", "dlen", "doff", NULL };
+    static char* kwnames[] = { "flags", "dlen", "doff", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, format, kwnames,
 				     &flags, &dlen, &doff)) 
@@ -1150,10 +1150,10 @@
 #if (DBVER >= 41)
     PyObject *txnobj = NULL;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = {"secondaryDB", "callback", "flags", "txn",
+    static char* kwnames[] = {"secondaryDB", "callback", "flags", "txn",
                                     NULL};
 #else
-    static const char* kwnames[] = {"secondaryDB", "callback", "flags", NULL};
+    static char* kwnames[] = {"secondaryDB", "callback", "flags", NULL};
 #endif
 
 #if (DBVER >= 41)
@@ -1259,7 +1259,7 @@
     PyObject* retval = NULL;
     DBT key, data;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = { "txn", "flags", NULL };
+    static char* kwnames[] = { "txn", "flags", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Oi:consume", kwnames,
                                      &txnobj, &flags))
@@ -1329,7 +1329,7 @@
     DBC* dbc;
     PyObject* txnobj = NULL;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = { "txn", "flags", NULL };
+    static char* kwnames[] = { "txn", "flags", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Oi:cursor", kwnames,
                                      &txnobj, &flags))
@@ -1354,7 +1354,7 @@
     PyObject* keyobj;
     DBT key;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = { "key", "txn", "flags", NULL };
+    static char* kwnames[] = { "key", "txn", "flags", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|Oi:delete", kwnames,
                                      &keyobj, &txnobj, &flags))
@@ -1406,7 +1406,7 @@
     int doff = -1;
     DBT key, data;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = {"key", "default", "txn", "flags", "dlen",
+    static char* kwnames[] = {"key", "default", "txn", "flags", "dlen",
                                     "doff", NULL};
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OOiii:get", kwnames,
@@ -1474,7 +1474,7 @@
     int doff = -1;
     DBT key, pkey, data;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = {"key", "default", "txn", "flags", "dlen",
+    static char* kwnames[] = {"key", "default", "txn", "flags", "dlen",
                                     "doff", NULL};
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OOiii:pget", kwnames,
@@ -1572,7 +1572,7 @@
     PyObject* retval = NULL;
     DBT key, data;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = { "key", "txn", NULL };
+    static char* kwnames[] = { "key", "txn", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:get_size", kwnames,
                                      &keyobj, &txnobj))
@@ -1615,7 +1615,7 @@
     PyObject* retval = NULL;
     DBT key, data;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = { "key", "data", "txn", "flags", NULL };
+    static char* kwnames[] = { "key", "data", "txn", "flags", NULL };
 
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO|Oi:get_both", kwnames,
@@ -1766,7 +1766,7 @@
     DBT key;
     DB_TXN *txn = NULL;
     DB_KEY_RANGE range;
-    static const char* kwnames[] = { "key", "txn", "flags", NULL };
+    static char* kwnames[] = { "key", "txn", "flags", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|Oi:key_range", kwnames,
                                      &keyobj, &txnobj, &flags))
@@ -1797,17 +1797,17 @@
     PyObject *txnobj = NULL;
     DB_TXN *txn = NULL;
     /* with dbname */
-    static const char* kwnames[] = {
+    static char* kwnames[] = {
         "filename", "dbname", "dbtype", "flags", "mode", "txn", NULL};
     /* without dbname */
     static const char* kwnames_basic[] = {
         "filename", "dbtype", "flags", "mode", "txn", NULL};
 #else
     /* with dbname */
-    static const char* kwnames[] = {
+    static char* kwnames[] = {
         "filename", "dbname", "dbtype", "flags", "mode", NULL};
     /* without dbname */
-    static const char* kwnames_basic[] = {
+    static char* kwnames_basic[] = {
         "filename", "dbtype", "flags", "mode", NULL};
 #endif
 
@@ -1891,7 +1891,7 @@
     PyObject* keyobj, *dataobj, *retval;
     DBT key, data;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = { "key", "data", "txn", "flags", "dlen",
+    static char* kwnames[] = { "key", "data", "txn", "flags", "dlen",
                                      "doff", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO|Oiii:put", kwnames,
@@ -1932,7 +1932,7 @@
     char* filename;
     char* database = NULL;
     int err, flags=0;
-    static const char* kwnames[] = { "filename", "dbname", "flags", NULL};
+    static char* kwnames[] = { "filename", "dbname", "flags", NULL};
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|zi:remove", kwnames,
                                      &filename, &database, &flags))
@@ -2350,9 +2350,9 @@
 #if (DBVER >= 43)
     PyObject* txnobj = NULL;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = { "txn", "flags", NULL };
+    static char* kwnames[] = { "txn", "flags", NULL };
 #else
-    static const char* kwnames[] = { "flags", NULL };
+    static char* kwnames[] = { "flags", NULL };
 #endif
 
 #if (DBVER >= 43)
@@ -2492,7 +2492,7 @@
     u_int32_t count=0;
     PyObject* txnobj = NULL;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = { "txn", "flags", NULL };
+    static char* kwnames[] = { "txn", "flags", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Oi:cursor", kwnames,
                                      &txnobj, &flags))
@@ -2536,7 +2536,7 @@
     char* dbName=NULL;
     char* outFileName=NULL;
     FILE* outFile=NULL;
-    static const char* kwnames[] = { "filename", "dbname", "outfile", "flags",
+    static char* kwnames[] = { "filename", "dbname", "outfile", "flags",
                                      NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|zzi:verify", kwnames,
@@ -2594,7 +2594,7 @@
     int err;
     u_int32_t flags=0;
     char *passwd = NULL;
-    static const char* kwnames[] = { "passwd", "flags", NULL };
+    static char* kwnames[] = { "passwd", "flags", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|i:set_encrypt", kwnames,
 		&passwd, &flags)) {
@@ -3034,7 +3034,7 @@
     int dlen = -1;
     int doff = -1;
     DBT key, data;
-    static const char* kwnames[] = { "key","data", "flags", "dlen", "doff",
+    static char* kwnames[] = { "key","data", "flags", "dlen", "doff",
                                      NULL };
 
     CLEAR_DBT(key);
@@ -3121,7 +3121,7 @@
     int dlen = -1;
     int doff = -1;
     DBT key, pkey, data;
-    static const char* kwnames[] = { "key","data", "flags", "dlen", "doff",
+    static char* kwnames[] = { "key","data", "flags", "dlen", "doff",
                                      NULL };
 
     CLEAR_DBT(key);
@@ -3283,7 +3283,7 @@
     int err, flags = 0;
     PyObject* keyobj, *dataobj;
     DBT key, data;
-    static const char* kwnames[] = { "key", "data", "flags", "dlen", "doff",
+    static char* kwnames[] = { "key", "data", "flags", "dlen", "doff",
                                      NULL };
     int dlen = -1;
     int doff = -1;
@@ -3319,7 +3319,7 @@
     int err, flags = 0;
     DBT key, data;
     PyObject* retval, *keyobj;
-    static const char* kwnames[] = { "key", "flags", "dlen", "doff", NULL };
+    static char* kwnames[] = { "key", "flags", "dlen", "doff", NULL };
     int dlen = -1;
     int doff = -1;
 
@@ -3389,7 +3389,7 @@
     int err, flags = 0;
     DBT key, data;
     PyObject* retval, *keyobj;
-    static const char* kwnames[] = { "key", "flags", "dlen", "doff", NULL };
+    static char* kwnames[] = { "key", "flags", "dlen", "doff", NULL };
     int dlen = -1;
     int doff = -1;
 
@@ -3579,7 +3579,7 @@
     PyObject* retval;
     int dlen = -1;
     int doff = -1;
-    static const char* kwnames[] = { "recno","flags", "dlen", "doff", NULL };
+    static char* kwnames[] = { "recno","flags", "dlen", "doff", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i|iii:set_recno", kwnames,
 				     &irecno, &flags, &dlen, &doff))
@@ -3773,7 +3773,7 @@
     char *database = NULL;
     PyObject *txnobj = NULL;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = { "file", "database", "txn", "flags",
+    static char* kwnames[] = { "file", "database", "txn", "flags",
                                      NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ss|Oi:dbremove", kwnames,
@@ -3801,7 +3801,7 @@
     char *newname = NULL;
     PyObject *txnobj = NULL;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = { "file", "database", "newname", "txn",
+    static char* kwnames[] = { "file", "database", "newname", "txn",
                                      "flags", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "sss|Oi:dbrename", kwnames,
@@ -3826,7 +3826,7 @@
     int err;
     u_int32_t flags=0;
     char *passwd = NULL;
-    static const char* kwnames[] = { "passwd", "flags", NULL };
+    static char* kwnames[] = { "passwd", "flags", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|i:set_encrypt", kwnames,
 		&passwd, &flags)) {
@@ -3849,7 +3849,7 @@
     int err;
     u_int32_t flags=0;
     u_int32_t timeout = 0;
-    static const char* kwnames[] = { "timeout", "flags", NULL };
+    static char* kwnames[] = { "timeout", "flags", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:set_timeout", kwnames,
 		&timeout, &flags)) {
@@ -4136,7 +4136,7 @@
     int flags = 0;
     PyObject* txnobj = NULL;
     DB_TXN *txn = NULL;
-    static const char* kwnames[] = { "parent", "flags", NULL };
+    static char* kwnames[] = { "parent", "flags", NULL };
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Oi:txn_begin", kwnames,
                                      &txnobj, &flags))
@@ -4986,7 +4986,7 @@
 {
     PyObject* dbenvobj = NULL;
     int flags = 0;
-    static const char* kwnames[] = { "dbEnv", "flags", NULL};
+    static char* kwnames[] = { "dbEnv", "flags", NULL};
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Oi:DB", kwnames,
                                      &dbenvobj, &flags))
diff --git a/Modules/_csv.c b/Modules/_csv.c
index 51dc89d..da5ae0d 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -291,7 +291,7 @@
         self->ob_type->tp_free((PyObject *)self);
 }
 
-static const char *dialect_kws[] = {
+static char *dialect_kws[] = {
 	"dialect",
 	"delimiter",
 	"doublequote",
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index ab3ef23..514ed72 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -106,12 +106,6 @@
 #endif
 #endif
 
-#if (PY_VERSION_HEX >= 0x02050000)
-#define PY_CONST const /* 2.5 adds const to some API:s */
-#else
-#define PY_CONST
-#endif
-
 #if !defined(Py_RETURN_NONE)
 #define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None
 #endif
@@ -2192,7 +2186,7 @@
 
     PyObject* target = NULL;
     char* encoding = NULL;
-    static PY_CONST char* kwlist[] = { "target", "encoding", NULL };
+    static char* kwlist[] = { "target", "encoding", NULL };
     if (!PyArg_ParseTupleAndKeywords(args, kw, "|Oz:XMLParser", kwlist,
                                      &target, &encoding))
         return NULL;
diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c
index c13de8f..00d86c9 100644
--- a/Modules/cjkcodecs/multibytecodec.c
+++ b/Modules/cjkcodecs/multibytecodec.c
@@ -45,8 +45,8 @@
 PyDoc_STRVAR(MultibyteCodec_StreamWriter__doc__,
 "I.StreamWriter(stream[, errors]) -> StreamWriter instance");
 
-static const char *codeckwarglist[] = {"input", "errors", NULL};
-static const char *streamkwarglist[] = {"stream", "errors", NULL};
+static char *codeckwarglist[] = {"input", "errors", NULL};
+static char *streamkwarglist[] = {"stream", "errors", NULL};
 
 static PyObject *multibytecodec_encode(MultibyteCodec *,
 		MultibyteCodec_State *, const Py_UNICODE **, size_t,
diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c
index cb7b588..199ee65 100644
--- a/Modules/datetimemodule.c
+++ b/Modules/datetimemodule.c
@@ -1891,7 +1891,7 @@
 	PyObject *y = NULL;	/* temp sum of microseconds */
 	double leftover_us = 0.0;
 
-	static const char *keywords[] = {
+	static char *keywords[] = {
 		"days", "seconds", "microseconds", "milliseconds",
 		"minutes", "hours", "weeks", NULL
 	};
@@ -2194,7 +2194,7 @@
 
 /* Constructors. */
 
-static const char *date_kws[] = {"year", "month", "day", NULL};
+static char *date_kws[] = {"year", "month", "day", NULL};
 
 static PyObject *
 date_new(PyTypeObject *type, PyObject *args, PyObject *kw)
@@ -2448,7 +2448,7 @@
 	PyObject *result;
 	PyObject *format;
 	PyObject *tuple;
-	static const char *keywords[] = {"format", NULL};
+	static char *keywords[] = {"format", NULL};
 
 	if (! PyArg_ParseTupleAndKeywords(args, kw, "O!:strftime", keywords,
 					  &PyString_Type, &format))
@@ -3028,7 +3028,7 @@
  * Constructors.
  */
 
-static const char *time_kws[] = {"hour", "minute", "second", "microsecond",
+static char *time_kws[] = {"hour", "minute", "second", "microsecond",
 			   "tzinfo", NULL};
 
 static PyObject *
@@ -3196,7 +3196,7 @@
 	PyObject *result;
 	PyObject *format;
 	PyObject *tuple;
-	static const char *keywords[] = {"format", NULL};
+	static char *keywords[] = {"format", NULL};
 
 	if (! PyArg_ParseTupleAndKeywords(args, kw, "O!:strftime", keywords,
 					  &PyString_Type, &format))
@@ -3548,7 +3548,7 @@
  * Constructors.
  */
 
-static const char *datetime_kws[] = {
+static char *datetime_kws[] = {
 	"year", "month", "day", "hour", "minute", "second",
 	"microsecond", "tzinfo", NULL
 };
@@ -3729,7 +3729,7 @@
 {
 	PyObject *self;
 	PyObject *tzinfo = Py_None;
-	static const char *keywords[] = {"tz", NULL};
+	static char *keywords[] = {"tz", NULL};
 
 	if (! PyArg_ParseTupleAndKeywords(args, kw, "|O:now", keywords,
 					  &tzinfo))
@@ -3765,7 +3765,7 @@
 	PyObject *self;
 	double timestamp;
 	PyObject *tzinfo = Py_None;
-	static const char *keywords[] = {"timestamp", "tz", NULL};
+	static char *keywords[] = {"timestamp", "tz", NULL};
 
 	if (! PyArg_ParseTupleAndKeywords(args, kw, "d|O:fromtimestamp",
 					  keywords, &timestamp, &tzinfo))
@@ -3843,7 +3843,7 @@
 static PyObject *
 datetime_combine(PyObject *cls, PyObject *args, PyObject *kw)
 {
- 	static const char *keywords[] = {"date", "time", NULL};
+ 	static char *keywords[] = {"date", "time", NULL};
 	PyObject *date;
 	PyObject *time;
 	PyObject *result = NULL;
@@ -4070,7 +4070,7 @@
 datetime_isoformat(PyDateTime_DateTime *self, PyObject *args, PyObject *kw)
 {
 	char sep = 'T';
-	static const char *keywords[] = {"sep", NULL};
+	static char *keywords[] = {"sep", NULL};
 	char buffer[100];
 	char *cp;
 	PyObject *result;
@@ -4261,7 +4261,7 @@
 	int offset, none;
 
 	PyObject *tzinfo;
-	static const char *keywords[] = {"tz", NULL};
+	static char *keywords[] = {"tz", NULL};
 
 	if (! PyArg_ParseTupleAndKeywords(args, kw, "O!:astimezone", keywords,
 					  &PyDateTime_TZInfoType, &tzinfo))
diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c
index a877749..49d241f 100644
--- a/Modules/itertoolsmodule.c
+++ b/Modules/itertoolsmodule.c
@@ -26,7 +26,7 @@
 static PyObject *
 groupby_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 {
-	static const char *kwargs[] = {"iterable", "key", NULL};
+	static char *kwargs[] = {"iterable", "key", NULL};
 	groupbyobject *gbo;
  	PyObject *it, *keyfunc = Py_None;
  
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index 66ce716..7c3c3e4 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -874,7 +874,7 @@
 	int fd, flags = MAP_SHARED, prot = PROT_WRITE | PROT_READ;
 	int devzero = -1;
 	int access = (int)ACCESS_DEFAULT;
-	static const char *keywords[] = {"fileno", "length",
+	static char *keywords[] = {"fileno", "length",
                                          "flags", "prot",
                                          "access", NULL};
 
@@ -992,7 +992,7 @@
 	HANDLE fh = 0;
 	int access = (access_mode)ACCESS_DEFAULT;
 	DWORD flProtect, dwDesiredAccess;
-	static const char *keywords[] = { "fileno", "length",
+	static char *keywords[] = { "fileno", "length",
                                           "tagname",
                                           "access", NULL };
 
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 6ec15fd..c526d75 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -2566,7 +2566,7 @@
 	PySocketSockObject *s = (PySocketSockObject *)self;
 	SOCKET_T fd;
 	int family = AF_INET, type = SOCK_STREAM, proto = 0;
-	static const char *keywords[] = {"family", "type", "proto", 0};
+	static char *keywords[] = {"family", "type", "proto", 0};
 
 	if (!PyArg_ParseTupleAndKeywords(args, kwds,
 					 "|iii:socket", keywords,