Casts by Jack to shut up the Mac compiler.
diff --git a/Modules/regexmodule.c b/Modules/regexmodule.c
index 8a6b695..df112d3 100644
--- a/Modules/regexmodule.c
+++ b/Modules/regexmodule.c
@@ -130,7 +130,7 @@
 	}
 	Py_XDECREF(re->re_lastok);
 	re->re_lastok = NULL;
-	result = _Py_re_match(&re->re_patbuf, buffer, size, offset,
+	result = _Py_re_match(&re->re_patbuf, (unsigned char *)buffer, size, offset,
 			      &re->re_regs);
 	if (result < -1) {
 		/* Serious failure of some sort; if re_match didn't 
@@ -174,7 +174,7 @@
 	range = size - offset;
 	Py_XDECREF(re->re_lastok);
 	re->re_lastok = NULL;
-	result = _Py_re_search(&re->re_patbuf, buffer, size, offset, range,
+	result = _Py_re_search(&re->re_patbuf, (unsigned char *)buffer, size, offset, range,
 			   &re->re_regs);
 	if (result < -1) {
 		/* Serious failure of some sort; if re_match didn't 
@@ -423,9 +423,9 @@
 		char *error;
 		re->re_patbuf.buffer = NULL;
 		re->re_patbuf.allocated = 0;
-		re->re_patbuf.fastmap = re->re_fastmap;
+		re->re_patbuf.fastmap = (unsigned char *)re->re_fastmap;
 		if (translate) {
-			re->re_patbuf.translate = PyString_AsString(translate);
+			re->re_patbuf.translate = (unsigned char *)PyString_AsString(translate);
 			if (!re->re_patbuf.translate)
 				goto finally;
 			Py_INCREF(translate);
@@ -439,7 +439,7 @@
 		re->re_realpat = pattern;
 		Py_INCREF(givenpat);
 		re->re_givenpat = givenpat;
-		error = re_compile_pattern(pat, size, &re->re_patbuf);
+		error = (char *)re_compile_pattern((unsigned char *)pat, size, &re->re_patbuf);
 		if (error != NULL) {
 			PyErr_SetString(RegexError, error);
 			goto finally;
diff --git a/Modules/regexpr.c b/Modules/regexpr.c
index 1c0f60a..a90363a 100644
--- a/Modules/regexpr.c
+++ b/Modules/regexpr.c
@@ -1535,36 +1535,36 @@
 	STORE(Cend);
 	SET_FIELDS;
 	if(!re_optimize(bufp))
-		return "Optimization error";
+		return (unsigned char *)"Optimization error";
 	return NULL;
 
   op_error:
 	SET_FIELDS;
-	return "Badly placed special character";
+	return (unsigned char *)"Badly placed special character";
 
   bad_match_register:
 	SET_FIELDS;
-	return "Bad match register number";
+	return (unsigned char *)"Bad match register number";
    
   hex_error:
 	SET_FIELDS;
-	return "Bad hexadecimal number";
+	return (unsigned char *)"Bad hexadecimal number";
    
   parenthesis_error:
 	SET_FIELDS;
-	return "Badly placed parenthesis";
+	return (unsigned char *)"Badly placed parenthesis";
    
   out_of_memory:
 	SET_FIELDS;
-	return "Out of memory";
+	return (unsigned char *)"Out of memory";
    
   ends_prematurely:
 	SET_FIELDS;
-	return "Regular expression ends prematurely";
+	return (unsigned char *)"Regular expression ends prematurely";
 
   too_complex:
 	SET_FIELDS;
-	return "Regular expression too complex";
+	return (unsigned char *)"Regular expression too complex";
 }
 
 #undef CHARAT
diff --git a/Modules/reopmodule.c b/Modules/reopmodule.c
index 13ef95e..9473191 100644
--- a/Modules/reopmodule.c
+++ b/Modules/reopmodule.c
@@ -141,7 +141,7 @@
 						     "casefold")) == NULL)
 			return NULL;
 
-		bufp.translate = PyString_AsString(casefold);
+		bufp.translate = (unsigned char*)PyString_AsString(casefold);
 	}
 	else
 		bufp.translate=NULL;
@@ -241,7 +241,7 @@
 						     "casefold")) == NULL)
 			return NULL;
 
-		bufp.translate = PyString_AsString(casefold);
+		bufp.translate = (unsigned char *)PyString_AsString(casefold);
 	}
 	else
 		bufp.translate=NULL;
@@ -339,7 +339,7 @@
 	string[1]='\\';
 	string[length+4]='\0';
 	memcpy(string+2, pattern+index-1, length+1);
-	v=PyRun_String(string, Py_eval_input, 
+	v=PyRun_String((char *)string, Py_eval_input, 
 		       PyEval_GetGlobals(), PyEval_GetLocals());
 	free(string);
 	/* The evaluation raised an exception */
@@ -657,7 +657,7 @@
   if (!PyArg_ParseTuple(args, "OS", &match_obj, &repl_obj)) 
     return NULL;
 
-  repl=PyString_AsString(repl_obj);
+  repl=(unsigned char *)PyString_AsString(repl_obj);
   size=PyString_Size(repl_obj);
   results=PyList_New(0);
   if (results==NULL) return NULL;
@@ -671,7 +671,7 @@
 	  if (start!=i)
 	    {
 	      PyList_Append(results, 
-			    PyString_FromStringAndSize(repl+start, i-start));
+			    PyString_FromStringAndSize((char *)repl+start, i-start));
 	      total_len += i-start;
 	    }
 	  i++;
@@ -742,7 +742,7 @@
 
   if (start!=i)
     {
-      PyList_Append(results, PyString_FromStringAndSize(repl+start, i-start));
+      PyList_Append(results, PyString_FromStringAndSize((char *)repl+start, i-start));
       total_len += i-start;
     }
 
@@ -758,7 +758,7 @@
       return NULL;
     }
 
-  repl=PyString_AsString(newstring);
+  repl=(unsigned char *)PyString_AsString(newstring);
   for (pos=i=0; i<PyList_Size(results); i++)
     {
       PyObject *item=PyList_GetItem(results, i);
@@ -963,10 +963,10 @@
 		goto finally;
 	
 	/* Initialize reop.casefold constant */
-	if (!(v = PyString_FromStringAndSize((unsigned char *)NULL, 256)))
+	if (!(v = PyString_FromStringAndSize((char *)NULL, 256)))
 		goto finally;
 	
-	if (!(s = PyString_AsString(v)))
+	if (!(s = (unsigned char *)PyString_AsString(v)))
 		goto finally;
 
 	for (i = 0; i < 256; i++) {
@@ -990,7 +990,7 @@
 	for (i = 0; i < 256; i++)
 	{
 	   j[0] = i;
-	   k = PyString_FromStringAndSize(j, 1);
+	   k = PyString_FromStringAndSize((char *)j, 1);
 	   if (k == NULL)
 	      goto finally;
 	   v = PyInt_FromLong(re_syntax_table[i]);
diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c
index e6a3502..4fc3093 100644
--- a/Modules/zlibmodule.c
+++ b/Modules/zlibmodule.c
@@ -210,7 +210,7 @@
               inflateEnd(&zst);
               return NULL;
             }
-	    zst.next_out = PyString_AsString(result_str) + r_strlen;
+	    zst.next_out = (unsigned char *)PyString_AsString(result_str) + r_strlen;
 	    zst.avail_out=r_strlen;
 	    r_strlen = r_strlen << 1;
 	    break;
@@ -369,7 +369,7 @@
 		      "Can't allocate memory to compress data");
       return NULL;
   }
-  self->zst.next_out = PyString_AsString(RetVal);
+  self->zst.next_out = (unsigned char *)PyString_AsString(RetVal);
   self->zst.avail_out = length;
   while (self->zst.avail_in != 0 && err == Z_OK)
   {
@@ -380,7 +380,7 @@
 			      "Can't allocate memory to compress data");
 	      return NULL;
 	  }
-	  self->zst.next_out = PyString_AsString(RetVal) + length;
+	  self->zst.next_out = (unsigned char *)PyString_AsString(RetVal) + length;
 	  self->zst.avail_out = length;
 	  length = length << 1;
       }
@@ -419,7 +419,7 @@
   self->zst.avail_in=inplen;
   self->zst.next_in=input;
   self->zst.avail_out = length = DEFAULTALLOC;
-  self->zst.next_out = PyString_AsString(RetVal);
+  self->zst.next_out = (unsigned char *)PyString_AsString(RetVal);
   err = Z_OK;
 
   while (self->zst.avail_in != 0 && err == Z_OK)
@@ -433,7 +433,7 @@
 			      "Can't allocate memory to compress data");
 	      return NULL;
 	  }
-	  self->zst.next_out = PyString_AsString(RetVal) + length;
+	  self->zst.next_out = (unsigned char *)PyString_AsString(RetVal) + length;
 	  self->zst.avail_out = length;
 	  length = length << 1;
       }
@@ -474,7 +474,7 @@
 		      "Can't allocate memory to compress data");
       return NULL;
   }
-  self->zst.next_out = PyString_AsString(RetVal);
+  self->zst.next_out = (unsigned char *)PyString_AsString(RetVal);
   self->zst.avail_out = length;
   while (err == Z_OK)
   {
@@ -485,7 +485,7 @@
 			      "Can't allocate memory to compress data");
 	      return NULL;
 	  }
-	  self->zst.next_out = PyString_AsString(RetVal) + length;
+	  self->zst.next_out = (unsigned char *)PyString_AsString(RetVal) + length;
 	  self->zst.avail_out = length;
 	  length = length << 1;
       }
@@ -534,7 +534,7 @@
       return NULL;
   }
   self->zst.avail_in=0;
-  self->zst.next_out = PyString_AsString(RetVal);
+  self->zst.next_out = (unsigned char *)PyString_AsString(RetVal);
   length = self->zst.avail_out = DEFAULTALLOC;
 
   err = Z_OK;
@@ -549,7 +549,7 @@
 			      "Can't allocate memory to decompress data");
 	      return NULL;
 	  }
-	  self->zst.next_out = PyString_AsString(RetVal) + length;
+	  self->zst.next_out = (unsigned char *)PyString_AsString(RetVal) + length;
 	  self->zst.avail_out = length;
 	  length = length << 1;
       }