diff --git a/tests/xmlparse.py b/tests/xmlparse.py
index db679497b..16de6779c 100644
--- a/tests/xmlparse.py
+++ b/tests/xmlparse.py
@@ -171,7 +171,7 @@ class XMLParseTest(unittest.TestCase):
rmfeat = guest.cpu.features[3]
guest.cpu.remove_feature(rmfeat)
self.assertEquals(rmfeat.get_xml_config(),
- """""")
+ """\n""")
guest.cpu.add_feature("addfeature")
check = self._make_checker(guest.numatune)
@@ -303,8 +303,8 @@ class XMLParseTest(unittest.TestCase):
self._alter_compare(guest.get_xml_config(), outfile)
def testSingleDisk(self):
- xml = (""""""
- """""")
+ xml = ("""\n"""
+ """\n""")
d = virtinst.VirtualDisk(conn, parsexml=xml)
self._set_and_check(d, "target", "hda", "hdb")
self.assertEquals(xml.replace("hda", "hdb"), d.get_xml_config())
diff --git a/virtinst/xmlbuilder.py b/virtinst/xmlbuilder.py
index 6d0346905..aa290c9a4 100644
--- a/virtinst/xmlbuilder.py
+++ b/virtinst/xmlbuilder.py
@@ -1018,9 +1018,9 @@ class XMLBuilder(object):
if ret == xmlstub:
ret = ""
- if (ret and
- self._xmlstate.root_name == "domain" and
- not ret.endswith("\n")):
+ # Ensure top level XML object always ends with a newline, just
+ # for back compat and readability
+ if (ret and not self.get_root_xpath() and not ret.endswith("\n")):
ret += "\n"
return ret