diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py
index 7ccb8f4..a8c0b10 100644
--- a/Lib/test/test_minidom.py
+++ b/Lib/test/test_minidom.py
@@ -19,7 +19,7 @@
     base = sys.argv[0]
 else:
     base = __file__
-tstfile = os.path.join(os.path.dirname(base), "test"+os.extsep+"xml")
+tstfile = os.path.join(os.path.dirname(base), "xmltestdata", "test.xml")
 del base
 
 # The tests of DocumentType importing use these helpers to construct
diff --git a/Lib/test/test_sax.py b/Lib/test/test_sax.py
index c582985..22048e6 100644
--- a/Lib/test/test_sax.py
+++ b/Lib/test/test_sax.py
@@ -17,6 +17,9 @@
 import unittest
 import os
 
+TEST_XMLFILE = findfile(os.path.join("xmltestdata", "test.xml"))
+TEST_XMLFILE_OUT = findfile(os.path.join("xmltestdata", "test.xml.out"))
+
 ns_uri = "http://www.python.org/xml-ns/saxtest/"
 
 class XmlTestBase(unittest.TestCase):
@@ -311,7 +314,7 @@
 #
 # ===========================================================================
 
-xml_test_out = open(findfile("test"+os.extsep+"xml"+os.extsep+"out")).read()
+xml_test_out = open(TEST_XMLFILE_OUT).read()
 
 class ExpatReaderTest(XmlTestBase):
 
@@ -323,7 +326,7 @@
         xmlgen = XMLGenerator(result)
 
         parser.setContentHandler(xmlgen)
-        parser.parse(open(findfile("test"+os.extsep+"xml")))
+        parser.parse(open(TEST_XMLFILE))
 
         self.assertEquals(result.getvalue(), xml_test_out)
 
@@ -452,7 +455,7 @@
         xmlgen = XMLGenerator(result)
 
         parser.setContentHandler(xmlgen)
-        parser.parse(findfile("test"+os.extsep+"xml"))
+        parser.parse(TEST_XMLFILE)
 
         self.assertEquals(result.getvalue(), xml_test_out)
 
@@ -462,7 +465,7 @@
         xmlgen = XMLGenerator(result)
 
         parser.setContentHandler(xmlgen)
-        parser.parse(InputSource(findfile("test"+os.extsep+"xml")))
+        parser.parse(InputSource(TEST_XMLFILE))
 
         self.assertEquals(result.getvalue(), xml_test_out)
 
@@ -473,7 +476,7 @@
 
         parser.setContentHandler(xmlgen)
         inpsrc = InputSource()
-        inpsrc.setByteStream(open(findfile("test"+os.extsep+"xml")))
+        inpsrc.setByteStream(open(TEST_XMLFILE))
         parser.parse(inpsrc)
 
         self.assertEquals(result.getvalue(), xml_test_out)
@@ -534,9 +537,9 @@
         xmlgen = XMLGenerator(result)
         parser = create_parser()
         parser.setContentHandler(xmlgen)
-        parser.parse(findfile("test.xml"))
+        parser.parse(TEST_XMLFILE)
 
-        self.assertEquals(parser.getSystemId(), findfile("test.xml"))
+        self.assertEquals(parser.getSystemId(), TEST_XMLFILE)
         self.assertEquals(parser.getPublicId(), None)
 
 
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
index bc8b620..b99e42a 100644
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -17,6 +17,9 @@
 
 from xml.etree import ElementTree as ET
 
+SIMPLE_XMLFILE = "xmltestdata/simple.xml"
+SIMPLE_NS_XMLFILE = "xmltestdata/simple-ns.xml"
+
 SAMPLE_XML = """\
 <body>
   <tag class='a'>text</tag>
@@ -418,7 +421,7 @@
     >>> tree.find("section/tag").tag
     'tag'
 
-    >>> tree = ET.ElementTree(file="samples/simple.xml")
+    >>> tree = ET.ElementTree(file=SIMPLE_XMLFILE)
     >>> tree.find("element").tag
     'element'
     >>> tree.find("element/../empty-element").tag
@@ -564,7 +567,7 @@
     """
     Test parsing from file.
 
-    >>> tree = ET.parse("samples/simple.xml")
+    >>> tree = ET.parse(SIMPLE_XMLFILE)
     >>> normalize_crlf(tree)
     >>> tree.write(sys.stdout)
     <root>
@@ -572,7 +575,7 @@
        <element>text</element>tail
        <empty-element />
     </root>
-    >>> tree = ET.parse("samples/simple-ns.xml")
+    >>> tree = ET.parse(SIMPLE_NS_XMLFILE)
     >>> normalize_crlf(tree)
     >>> tree.write(sys.stdout)
     <ns0:root xmlns:ns0="namespace">
@@ -584,7 +587,7 @@
     >>> parser = ET.XMLParser()
     >>> parser.version  # XXX: Upgrade to 2.0.1?
     'Expat 2.0.0'
-    >>> parser.feed(open("samples/simple.xml").read())
+    >>> parser.feed(open(SIMPLE_XMLFILE).read())
     >>> print serialize(parser.close())
     <root>
        <element key="value">text</element>
@@ -593,7 +596,7 @@
     </root>
 
     >>> parser = ET.XMLTreeBuilder() # 1.2 compatibility
-    >>> parser.feed(open("samples/simple.xml").read())
+    >>> parser.feed(open(SIMPLE_XMLFILE).read())
     >>> print serialize(parser.close())
     <root>
        <element key="value">text</element>
@@ -603,7 +606,7 @@
 
     >>> target = ET.TreeBuilder()
     >>> parser = ET.XMLParser(target=target)
-    >>> parser.feed(open("samples/simple.xml").read())
+    >>> parser.feed(open(SIMPLE_XMLFILE).read())
     >>> print serialize(parser.close())
     <root>
        <element key="value">text</element>
@@ -644,7 +647,7 @@
 
     >>> iterparse = ET.iterparse
 
-    >>> context = iterparse("samples/simple.xml")
+    >>> context = iterparse(SIMPLE_XMLFILE)
     >>> action, elem = next(context)
     >>> print action, elem.tag
     end element
@@ -656,7 +659,7 @@
     >>> context.root.tag
     'root'
 
-    >>> context = iterparse("samples/simple-ns.xml")
+    >>> context = iterparse(SIMPLE_NS_XMLFILE)
     >>> for action, elem in context:
     ...   print action, elem.tag
     end {namespace}element
@@ -665,17 +668,17 @@
     end {namespace}root
 
     >>> events = ()
-    >>> context = iterparse("samples/simple.xml", events)
+    >>> context = iterparse(SIMPLE_XMLFILE, events)
     >>> for action, elem in context:
     ...   print action, elem.tag
 
     >>> events = ()
-    >>> context = iterparse("samples/simple.xml", events=events)
+    >>> context = iterparse(SIMPLE_XMLFILE, events=events)
     >>> for action, elem in context:
     ...   print action, elem.tag
 
     >>> events = ("start", "end")
-    >>> context = iterparse("samples/simple.xml", events)
+    >>> context = iterparse(SIMPLE_XMLFILE, events)
     >>> for action, elem in context:
     ...   print action, elem.tag
     start root
@@ -688,7 +691,7 @@
     end root
 
     >>> events = ("start", "end", "start-ns", "end-ns")
-    >>> context = iterparse("samples/simple-ns.xml", events)
+    >>> context = iterparse(SIMPLE_NS_XMLFILE, events)
     >>> for action, elem in context:
     ...   if action in ("start", "end"):
     ...     print action, elem.tag
@@ -706,7 +709,7 @@
     end-ns None
 
     >>> events = ("start", "end", "bogus")
-    >>> context = iterparse("samples/simple.xml", events)
+    >>> context = iterparse(SIMPLE_XMLFILE, events)
     Traceback (most recent call last):
     ValueError: unknown event 'bogus'
 
@@ -767,7 +770,7 @@
     ...         pass
     >>> builder = Builder()
     >>> parser = ET.XMLParser(target=builder)
-    >>> parser.feed(open("samples/simple.xml", "r").read())
+    >>> parser.feed(open(SIMPLE_XMLFILE, "r").read())
     start root
     start element
     end element
@@ -790,7 +793,7 @@
     ...         print "comment", repr(data)
     >>> builder = Builder()
     >>> parser = ET.XMLParser(target=builder)
-    >>> parser.feed(open("samples/simple-ns.xml", "r").read())
+    >>> parser.feed(open(SIMPLE_NS_XMLFILE, "r").read())
     pi pi 'data'
     comment ' comment '
     start {namespace}root
@@ -808,7 +811,7 @@
     """
     Test Element.getchildren()
 
-    >>> tree = ET.parse(open("samples/simple.xml", "r"))
+    >>> tree = ET.parse(open(SIMPLE_XMLFILE, "r"))
     >>> for elem in tree.getroot().iter():
     ...     summarize_list(elem.getchildren())
     ['element', 'element', 'empty-element']
@@ -1286,9 +1289,9 @@
 <?xml version='1.0'?>
 <document xmlns:xi="http://www.w3.org/2001/XInclude">
   <p>Example.</p>
-  <xi:include href="samples/simple.xml"/>
+  <xi:include href="{}"/>
 </document>
-"""
+""".format(SIMPLE_XMLFILE)
 
 def xinclude_loader(href, parse="xml", encoding=None):
     try:
@@ -1822,8 +1825,10 @@
     from test import test_xml_etree
     def ignore(message, category=DeprecationWarning):
         warnings.filterwarnings("ignore", message, category)
+
     # The same doctests are used for both the Python and the C implementations
     assert test_xml_etree.ET.__name__ == module_name
+
     with warnings.catch_warnings(), CleanContext():
         # Search behaviour is broken if search path starts with "/".
         ignore("This search is broken in 1.3 and earlier, and will be fixed "
@@ -1838,8 +1843,8 @@
 
         test_support.run_doctest(test_xml_etree, verbosity=True)
 
-        # The module should not be changed by the tests
-        assert test_xml_etree.ET.__name__ == module_name
+    # The module should not be changed by the tests
+    assert test_xml_etree.ET.__name__ == module_name
 
 if __name__ == '__main__':
     test_main()
diff --git a/Lib/test/test_xml_etree_c.py b/Lib/test/test_xml_etree_c.py
index 7e978de..78a6a92 100644
--- a/Lib/test/test_xml_etree_c.py
+++ b/Lib/test/test_xml_etree_c.py
@@ -22,13 +22,18 @@
     test_support.run_doctest(test_xml_etree_c, verbosity=True)
 
     # Assign the C implementation before running the doctests
+    # Patch the __name__, to prevent confusion with the pure Python test
     pyET = test_xml_etree.ET
+    py__name__ = test_xml_etree.__name__
     test_xml_etree.ET = cET
+    if __name__ != '__main__':
+        test_xml_etree.__name__ = __name__
     try:
         # Run the same test suite as xml.etree.ElementTree
         test_xml_etree.test_main(module_name='xml.etree.cElementTree')
     finally:
         test_xml_etree.ET = pyET
+        test_xml_etree.__name__ = py__name__
 
 if __name__ == '__main__':
     test_main()
diff --git a/Lib/test/samples/simple-ns.xml b/Lib/test/xmltestdata/simple-ns.xml
similarity index 100%
rename from Lib/test/samples/simple-ns.xml
rename to Lib/test/xmltestdata/simple-ns.xml
diff --git a/Lib/test/samples/simple.xml b/Lib/test/xmltestdata/simple.xml
similarity index 100%
rename from Lib/test/samples/simple.xml
rename to Lib/test/xmltestdata/simple.xml
diff --git a/Lib/test/test.xml b/Lib/test/xmltestdata/test.xml
similarity index 100%
rename from Lib/test/test.xml
rename to Lib/test/xmltestdata/test.xml
diff --git a/Lib/test/test.xml.out b/Lib/test/xmltestdata/test.xml.out
similarity index 100%
rename from Lib/test/test.xml.out
rename to Lib/test/xmltestdata/test.xml.out
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 2247a56..d2fb4be 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -833,7 +833,7 @@
 	plat-mac/lib-scriptpackages/Terminal 
 PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages
 LIBSUBDIRS=	lib-tk site-packages test test/output test/data \
-		test/decimaltestdata \
+		test/decimaltestdata test/xmltestdata \
 		encodings compiler hotshot \
 		email email/mime email/test email/test/data \
 		json json/tests \
diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py
index eba29cc..84215a1 100644
--- a/Tools/msi/msi.py
+++ b/Tools/msi/msi.py
@@ -1005,8 +1005,6 @@
             lib.add_file("audiotest.au")
             lib.add_file("cfgparser.1")
             lib.add_file("sgml_input.html")
-            lib.add_file("test.xml")
-            lib.add_file("test.xml.out")
             lib.add_file("testtar.tar")
             lib.add_file("test_difflib_expect.html")
             lib.add_file("check_soundcard.vbs")
@@ -1018,6 +1016,9 @@
             lib.add_file("zipdir.zip")
         if dir=='decimaltestdata':
             lib.glob("*.decTest")
+        if dir=='xmltestdata':
+            lib.glob("*.xml")
+            lib.add_file("test.xml.out")
         if dir=='output':
             lib.glob("test_*")
         if dir=='idlelib':
