A comment about this local, as recommended by rick
diff --git a/src/util.c b/src/util.c
index f81e068..ae6ee5e 100644
--- a/src/util.c
+++ b/src/util.c
@@ -51,6 +51,11 @@
  */
 void
 flush_error_queue(void) {
+    /*
+     * Make sure to save the errors to a local.  Py_DECREF might expand such
+     * that it evaluates its argument more than once, which would lead to
+     * very nasty things if we just invoked it with error_queue_to_list().
+     */
     PyObject *list = error_queue_to_list();
     Py_DECREF(list);
 }