From 54eedf44106688ce57d17d2f7412b92b03d6ae33 Mon Sep 17 00:00:00 2001
From: jogibear9988 <jochen.kuehner@gmx.de>
Date: Sun, 23 Nov 2014 11:55:53 +0100
Subject: [PATCH] Templatehelper should Clone the Node and don't modify the
 original one

---
 .../WpfDesign.XamlDom/Project/TemplateHelper.cs | 17 +++--------------
 1 file changed, 3 insertions(+), 14 deletions(-)

diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/TemplateHelper.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/TemplateHelper.cs
index 8c105ace8d..6624bb4ec1 100644
--- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/TemplateHelper.cs
+++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/TemplateHelper.cs
@@ -50,20 +50,17 @@ namespace ICSharpCode.WpfDesign.XamlDom
 				if (!nav.MoveToParent())
 					break;
 			}
+			
+			xmlElement = (XmlElement)xmlElement.CloneNode(true);
 
 			foreach (var dictentry in ns.ToList())
 			{
-				if (xmlElement.HasAttribute("xmlns:" + dictentry.Key))
-					ns.Remove(dictentry.Key);
-				else
-					xmlElement.SetAttribute("xmlns:" + dictentry.Key, dictentry.Value);
+				xmlElement.SetAttribute("xmlns:" + dictentry.Key, dictentry.Value);
 			}
 
 			var keyAttrib = xmlElement.GetAttribute("Key", XamlConstants.XamlNamespace);
 
-			bool keySet = false;
 			if (string.IsNullOrEmpty(keyAttrib)) {
-				keySet = true;
 				xmlElement.SetAttribute("Key", XamlConstants.XamlNamespace, "$$temp&&ยงยง%%__");
 			}
 
@@ -117,14 +114,6 @@ namespace ICSharpCode.WpfDesign.XamlDom
 
 			var result = (ResourceDictionary)writer.Result;
 
-			if (keySet)
-				xmlElement.RemoveAttribute("Key", XamlConstants.XamlNamespace);
-			
-			foreach (var dictentry in ns)
-			{
-				xmlElement.RemoveAttribute("xmlns:" + dictentry.Key);
-			}
-			
 			var enr = result.Keys.GetEnumerator();
 			enr.MoveNext();
 			var rdKey = enr.Current;