[Patch #1094164] replaceChild(x,x) ends up removing x of the tree.  Add fix from Felix Rabe and a test case
diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py
index 8b4c715..68aac0f 100644
--- a/Lib/test/test_minidom.py
+++ b/Lib/test/test_minidom.py
@@ -1127,6 +1127,17 @@
     checkWholeText(text, "cabd")
     checkWholeText(text2, "cabd")
 
+def testPatch1094164 ():
+    doc = parseString("<doc><e/></doc>")
+    elem = doc.documentElement
+    e = elem.firstChild
+    confirm(e.parentNode is elem, "Before replaceChild()")
+    # Check that replacing a child with itself leaves the tree unchanged
+    elem.replaceChild(e, e)
+    confirm(e.parentNode is elem, "After replaceChild()")
+    
+    
+    
 def testReplaceWholeText():
     def setup():
         doc = parseString("<doc>a<e/>d</doc>")