Merge pull request #950 from ermshiperete/bug-xamarin-2787
[mono.git] / mcs / class / System.Xml.Linq / System.Xml.Linq / XNodeNavigator.cs
index 41ed6220201e01a3cb057cd46706e74f8a88f714..55702bd1c265d7aeb4a4f298f8a81a5723e31659 100644 (file)
@@ -24,8 +24,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if !MOONLIGHT
-
 using System;
 using System.IO;
 using System.Text;
@@ -336,7 +334,7 @@ namespace System.Xml.Linq
                public override bool MoveToNext ()
                {
                        XNode xn = node.NextNode;
-                       if (node is XText)
+                       if (xn is XText)
                                for (; xn != null; xn = xn.NextNode)
                                        if (!(xn.NextNode is XText))
                                                break;
@@ -413,10 +411,12 @@ namespace System.Xml.Linq
 
                public override void MoveToRoot ()
                {
-                       node = node.Document;
                        attr = null;
+                       if (node.Document != null)
+                               node = node.Document;
+                       else
+                               while (node.Owner != null)
+                                       node = node.Owner;
                }
        }
 }
-
-#endif