diff --git a/CHANGELOG.md b/CHANGELOG.md
index b0437d82bc6f98e9615497f000b3be8c52063677..628273b0efce63d793123ae4fcbcfea86998baf1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
 # v0.104:
 
 * more extensive testing (CPython3.8, nightly)
+* fixed a bug wherein future_to_notify_on_dead was set_result multiple times
 
 # v0.103:
 
diff --git a/compile_definitions/xml_fields.py b/compile_definitions/xml_fields.py
index 12a5fc3cdf817187c16d98f8c782ac792f1bcce7..28dac5a68eb2bfd281d4cf4ae97b1cdd19a37f5f 100644
--- a/compile_definitions/xml_fields.py
+++ b/compile_definitions/xml_fields.py
@@ -13,7 +13,7 @@ def nop(x):
 
 
 def _get_tagchild(elem, tag):
-    return [e for e in elem.getchildren() if e.tag == tag]
+    return [e for e in list(elem) if e.tag == tag]
 
 
 __all__ = [
@@ -98,7 +98,7 @@ class _ChildField(_ComputedField):
 
 def get_docs(elem, label):
     """Parse an XML element. Return documentation"""
-    for kid in elem.getchildren():
+    for kid in list(elem):
 
         if kid.tag == 'rule':
             return get_docs(kid, False)