diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -2295,6 +2295,18 @@
ET.tostring(root, 'utf-16'),
b''.join(ET.tostringlist(root, 'utf-16')))
+ def test_write_with_declaration(self):
+ elem = ET.Element("tag")
+ elem.text = "<&\"\'>"
+ self.assertEqual(serialize(elem, xml_declaration=True),
+ "\n<&\"'>")
+ self.assertEqual(serialize(elem, xml_declaration=True, encoding="utf-8"),
+ b"\n<&\"'>")
+ self.assertEqual(serialize(elem, xml_declaration=False),
+ "<&\"'>")
+ self.assertEqual(serialize(elem, xml_declaration=False, encoding="utf-8"),
+ b"<&\"'>")
+
class ParseErrorTest(unittest.TestCase):
def test_subclass(self):