diff --git a/src/main/java/help/HelpEntry.java b/src/main/java/help/HelpEntry.java
index bbb09a79ebf0b0ea1108aea123386e675df9c406..efdd84c0a32f84e0531245bd66114bb769dfd042 100644
--- a/src/main/java/help/HelpEntry.java
+++ b/src/main/java/help/HelpEntry.java
@@ -249,5 +249,55 @@ public class HelpEntry implements GenericTree {
        return getIndexOfKid((HelpEntry)child);
     }
 
+    public HelpEntry getFromMasterKeyword(String search) {
+        if (masterKeyword != null) {
+            if (masterKeyword.compareTo(search) == 0) {
+                return this;
+            }
+        }
+        if (entries != null) {
+            HelpEntry ret;
+            for(HelpEntry he: entries) {
+                ret = he.getFromMasterKeyword(search);
+                if (ret != null) {
+                    return ret;
+                }
+            }
+        }
+        return null;
+    }
+
+    public void addEntries(Vector<HelpEntry> list) {
+        list.add(this);
+        if (entries != null) {
+            for (HelpEntry he : entries) {
+                he.addEntries(list);
+            }
+        }
+    }
+
+    public int hasSimilarWords(String[] words) {
+        int result = 0;
+        for(String s:words) {
+            if (hasKeyword(s)) {
+                result ++;
+            }
+        }
+        return result;
+    }
+
+    public boolean hasKeyword(String word) {
+        for(String s: keywords) {
+            if (s.compareTo(word) == 0) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+
+
+
+
 
 }
diff --git a/src/main/java/help/HelpManager.java b/src/main/java/help/HelpManager.java
index 42fa5b0584cd349573b8d4885354805f9b2115e7..d994e763a3c130aa9569b324987aeda5262fcb17 100644
--- a/src/main/java/help/HelpManager.java
+++ b/src/main/java/help/HelpManager.java
@@ -45,6 +45,7 @@ import java.io.BufferedReader;
 import java.io.File;
 import java.io.InputStreamReader;
 import java.net.URL;
+import java.util.Vector;
 
 
 /**
@@ -61,6 +62,8 @@ public class HelpManager extends HelpEntry {
 
     private boolean helpLoaded = false;
 
+    private Vector<HelpEntry> allEntries;
+
 
     public HelpManager() {
         linkToParent = null;
@@ -123,7 +126,7 @@ public class HelpManager extends HelpEntry {
             return false;
         }
 
-
+        computeAllEntries();
         helpLoaded = true;
 
         return true;
@@ -243,4 +246,23 @@ public class HelpManager extends HelpEntry {
         return top;
     }
 
+    private void computeAllEntries() {
+        allEntries = new Vector<>();
+        addEntries(allEntries);
+
+    }
+
+    public Vector<HelpEntry> getEntriesWithKeyword(String[] words) {
+        Vector<HelpEntry> result = new Vector<>();
+        for(HelpEntry he: allEntries) {
+            int nb = he.hasSimilarWords(words);
+            if (nb > 0) {
+                result.add(he);
+            }
+        }
+        return result;
+    }
+
+
+
 }
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index 91e72485492cd8adde9670a54d9ed9fb9042fa24..43e36797bafd71f85506e6c487231d7bc0c7e686 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -758,6 +758,8 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             panel.searchForText(text.toLowerCase(), elements);
         }
 
+        elements.addAll(helpManager.getEntriesWithKeyword(text.split( " ")));
+
         gtm.setElementsOfSearchTree(elements);
         //TraceManager.addDev("Found " + elements.size() + " elements");
         dtree.forceUpdate();