diff --git a/Src/Newtonsoft.Json.Tests/Converters/XmlNodeConverterTest.cs b/Src/Newtonsoft.Json.Tests/Converters/XmlNodeConverterTest.cs
index 4db6eeed..0c63f04e 100644
--- a/Src/Newtonsoft.Json.Tests/Converters/XmlNodeConverterTest.cs
+++ b/Src/Newtonsoft.Json.Tests/Converters/XmlNodeConverterTest.cs
@@ -44,6 +44,7 @@ using Newtonsoft.Json.Linq;
#if !NET20
using System.Xml.Linq;
+
#endif
namespace Newtonsoft.Json.Tests.Converters
@@ -1909,7 +1910,27 @@ namespace Newtonsoft.Json.Tests.Converters
Assert.AreEqual(xml.notNull.ToString(), w2.notNull.ToString());
}
#endif
+
+ [Test]
+ public void SerializeAndDeserializeXmlWithNamespaceInChildrenRootDontHaveNameSpace()
+ {
+ var xmlString = @"
+ Asd
+ AAA
+ adad
+ ";
+
+ var xml = XElement.Parse(xmlString);
+
+ var json1 = JsonConvert.SerializeXNode(xml);
+ var xmlBack = JsonConvert.DeserializeObject(json1);
+
+ var equals = XElement.DeepEquals(xmlBack, xml);
+ Assert.IsTrue(equals);
+ }
}
}
-#endif
\ No newline at end of file
+#endif
+
+
diff --git a/Src/Newtonsoft.Json/Converters/XmlNodeConverter.cs b/Src/Newtonsoft.Json/Converters/XmlNodeConverter.cs
index 8a742295..3fa91b0d 100644
--- a/Src/Newtonsoft.Json/Converters/XmlNodeConverter.cs
+++ b/Src/Newtonsoft.Json/Converters/XmlNodeConverter.cs
@@ -1232,10 +1232,9 @@ namespace Newtonsoft.Json.Converters
if (reader.TokenType != JsonToken.EndObject)
{
manager.PushScope();
-
DeserializeNode(reader, document, manager, element);
-
manager.PopScope();
+ manager.RemoveNamespace(string.Empty, manager.DefaultNamespace);
}
}
}
@@ -1394,6 +1393,7 @@ namespace Newtonsoft.Json.Converters
}
else
{
+
finishedAttributes = true;
}