Fred's right -- we need PyList_SET_ITEM().
diff --git a/Include/listobject.h b/Include/listobject.h
index c1bbcc1..e99acef 100644
--- a/Include/listobject.h
+++ b/Include/listobject.h
@@ -74,6 +74,7 @@
 
 /* Macro, trading safety for speed */
 #define PyList_GET_ITEM(op, i) (((PyListObject *)(op))->ob_item[i])
+#define PyList_SET_ITEM(op, i, v) (((PyListObject *)(op))->ob_item[i] = (v))
 #define PyList_GET_SIZE(op)    (((PyListObject *)(op))->ob_size)
 
 #ifdef __cplusplus