diff --git a/Modules/_csv.c b/Modules/_csv.c
index 5f21182..c61519a 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -151,7 +151,11 @@
 {
         if (check_delattr(v) < 0)
                 return -1;
-        if (!PyString_Check(v) && !PyUnicode_Check(v)) {
+        if (!PyString_Check(v)
+#ifdef Py_USING_UNICODE
+&& !PyUnicode_Check(v)
+#endif
+) {
                 PyErr_BadArgument();
                 return -1;
         }
@@ -311,7 +315,11 @@
                 PyObject * dir_list;
 
                 /* If dialect is a string, look it up in our registry */
-                if (PyString_Check(dialect) || PyUnicode_Check(dialect)) {
+                if (PyString_Check(dialect)
+#ifdef Py_USING_UNICODE
+|| PyUnicode_Check(dialect)
+#endif
+) {
                         PyObject * new_dia;
                         new_dia = get_dialect_from_registry(dialect);
                         Py_DECREF(dialect);
@@ -1010,9 +1018,9 @@
 }
 
 PyDoc_STRVAR(csv_writerow_doc,
-"join(sequence) -> string\n"
+"writerow(sequence)\n"
 "\n"
-"Construct a CSV record from a sequence of fields.  Non-string\n"
+"Construct and write a CSV record from a sequence of fields.  Non-string\n"
 "elements will be converted to string.");
 
 static PyObject *
@@ -1088,6 +1096,12 @@
                                      "(s#)", self->rec, self->rec_len);
 }
 
+PyDoc_STRVAR(csv_writerows_doc,
+"writerows(sequence of sequences)\n"
+"\n"
+"Construct and write a series of sequences to a csv file.  Non-string\n"
+"elements will be converted to string.");
+
 static PyObject *
 csv_writerows(WriterObj *self, PyObject *seqseq)
 {
@@ -1118,7 +1132,7 @@
 
 static struct PyMethodDef Writer_methods[] = {
         { "writerow", (PyCFunction)csv_writerow, METH_O, csv_writerow_doc},
-        { "writerows", (PyCFunction)csv_writerows, METH_O},
+        { "writerows", (PyCFunction)csv_writerows, METH_O, csv_writerows_doc},
 	{ NULL, NULL }
 };
 
@@ -1238,7 +1252,11 @@
 
         if (!PyArg_ParseTuple(args, "OO", &name_obj, &dialect_obj))
                 return NULL;
-        if (!PyString_Check(name_obj) && !PyUnicode_Check(name_obj)) {
+        if (!PyString_Check(name_obj)
+#ifdef Py_USING_UNICODE
+&& !PyUnicode_Check(name_obj)
+#endif
+) {
                 PyErr_SetString(PyExc_TypeError, 
                                 "dialect name must be a string or unicode");
                 return NULL;
