I found that the table handling error is caused by different logic from 1.4 stable version.
You can see that it is different on the searching name ( one is from parameter and one is _currentnode.Name)
1.4 stable version
HtmlDocument.cs line 1122
private HtmlNode FindResetterNode(HtmlNode node, string name) { HtmlNode resetter = (HtmlNode)_lastnodes[name]; if (resetter == null) return null; if (resetter.Closed) { return null; } if (resetter._streamposition < node._streamposition) { return null; } return resetter; } private bool FindResetterNodes(HtmlNode node, string[] names) { if (names == null) { return false; } for (int i = 0; i < names.Length; i++) { if (FindResetterNode(node, names[i]) != null) { return true; } } return false; }
current revision 9477
HtmlDocument.cs line 1190
private HtmlNode FindResetterNode(HtmlNode node) { HtmlNode resetter = Utilities.GetDictionaryValueOrNull(Lastnodes, _currentnode.Name); if (resetter == null) return null; if (resetter.Closed) return null; return resetter._streamposition < node._streamposition ? null : resetter; } private bool FindResetterNodes(HtmlNode node, string[] names) { if (names == null) return false; for (int i = 0; i < names.Length; i++) { if (FindResetterNode(node) != null) return true; } return false; }