Michael Hudson pointed out that the Dialect_Type object isn't INCREF'd.  Why
this worked is a bit mystical.  Perhaps it never gets freed because the
object just happens never to be DECREF'd (but that seems unlikely).
diff --git a/Modules/_csv.c b/Modules/_csv.c
index 79870c0..da5ae0d 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -1587,6 +1587,7 @@
 	}
 
         /* Add the Dialect type */
+	Py_INCREF(&Dialect_Type);
         if (PyModule_AddObject(module, "Dialect", (PyObject *)&Dialect_Type))
                 return;