diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.C b/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.C
index ac9c639c497956968433375dc05fc8123f71c9a3..b3cc2da3e63541d5c2673859a7cdec9305dc18ae 100644
--- a/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.C
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.C
@@ -213,25 +213,21 @@ void Foam::doxygenXmlParser::skipForward
 ) const
 {
     // recurse to move forward in 'is' until come across <blockName>
-
-    // fast-forward until we reach a '<'
-    char c;
-    while (is.get(c) && c != '<')
-    {}
-    
     string entryName = "";
-    while (is.get(c) && c  != '>')
-    {
-        entryName = entryName + c;
-    }
+    char c;
 
-    if (entryName == blockName)
-    {
-        return;
-    }
-    else
+    while (is.good() && (entryName != blockName))
     {
-        skipForward(is, blockName);
+        entryName = "";
+
+        // fast-forward until we reach a '<'
+        while (is.get(c) && c != '<')
+        {}
+
+        while (is.get(c) && c  != '>')
+        {
+            entryName = entryName + c;
+        }
     }
 }