diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/HyphenationTree.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/HyphenationTree.cs
index b271525..6c3ed78 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/HyphenationTree.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/HyphenationTree.cs
@@ -176,7 +176,6 @@
         /// <exception cref="IOException"> In case the parsing fails </exception>
         public virtual void LoadPatterns(Stream source, Encoding encoding)
         {
-            // LUCENENET TODO: Create overloads that allow XmlReaderSettings to be passed in.
             var xmlReaderSettings =
                 new XmlReaderSettings
                 {
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/PatternParser.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/PatternParser.cs
index ffc96ef..fac4261 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/PatternParser.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/PatternParser.cs
@@ -79,7 +79,6 @@
         /// <exception cref="IOException"> In case of an exception while parsing </exception>
         public virtual void Parse(string path)
         {
-            // LUCENENET TODO: Create overloads that allow XmlReaderSettings to be passed in.
             Parse(path, Encoding.UTF8);
         }
 
@@ -92,8 +91,6 @@
         public virtual void Parse(string path, Encoding encoding)
         {
             var xmlReaderSettings = GetXmlReaderSettings();
-
-            // LUCENENET TODO: Create overloads that allow XmlReaderSettings to be passed in.
             using (var src = XmlReader.Create(new StreamReader(new FileStream(path, FileMode.Open), encoding), xmlReaderSettings))
             {
                 Parse(src);
@@ -205,7 +202,7 @@
                 new XmlReaderSettings
                 {
                     // DTD Processing currently is
-                    // not supported in .NET Standard but will come back in .NET Standard 2.0.
+                    // not supported in .NET Standard 1.x but will come back in .NET Standard 2.0.
                     // https://github.com/dotnet/corefx/issues/4376.
 #if FEATURE_DTD_PROCESSING
                     DtdProcessing = DtdProcessing.Parse,
