Fix repr of tree Element on windows.
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
index 86f8a6f..bc8b620 100644
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -131,7 +131,7 @@
 # element tree tests
 
 def interface():
-    """
+    r"""
     Test element tree interface.
 
     >>> element = ET.Element("tag")
@@ -139,10 +139,11 @@
     >>> tree = ET.ElementTree(element)
     >>> check_element(tree.getroot())
 
-    >>> element = ET.Element("tag", key="value")
+    >>> element = ET.Element("t\xe4g", key="value")
     >>> tree = ET.ElementTree(element)
     >>> repr(element)   # doctest: +ELLIPSIS
-    "<Element 'tag' at 0x...>"
+    "<Element 't\\xe4g' at 0x...>"
+    >>> element = ET.Element("tag", key="value")
 
     Make sure all standard element methods exist.
 
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index 62aee85..0aa1ebb 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -1190,15 +1190,16 @@
 static PyObject*
 element_repr(ElementObject* self)
 {
-    PyObject* repr;
-    char buffer[100];
-    
-    repr = PyString_FromString("<Element ");
+    PyObject *repr, *tag;
 
-    PyString_ConcatAndDel(&repr, PyObject_Repr(self->tag));
+    tag = PyObject_Repr(self->tag);
+    if (!tag)
+        return NULL;
 
-    sprintf(buffer, " at %p>", self);
-    PyString_ConcatAndDel(&repr, PyString_FromString(buffer));
+    repr = PyString_FromFormat("<Element %s at %p>",
+                               PyString_AS_STRING(tag), self);
+
+    Py_DECREF(tag);
 
     return repr;
 }