diff --git a/lib/modules/Tools.pmod/Hilfe.pmod b/lib/modules/Tools.pmod/Hilfe.pmod
index 30c22377d0f5284e089b715ad2bb277ca7ce0241..0c75813c3ba1ad65d90d87218a6fb0e8997ff7f1 100644
--- a/lib/modules/Tools.pmod/Hilfe.pmod
+++ b/lib/modules/Tools.pmod/Hilfe.pmod
@@ -29,6 +29,16 @@ import Getopt;
   array(string) function_names=({});
   array(string) imports_and_inherits=({});
 
+  constant keywords = (< "array", "break", "case", "catch", "class",
+			 "constant", "continue", "default", "do", "else",
+			 "extern", "final", "float", "for", "foreach",
+			 "function", "gauge", "if", "import", "int",
+			 "inherit", "inline", "lambda", "local", "mapping",
+			 "mixed", "multiset", "nomask", "object", "optional",
+			 "program", "predef", "private", "protected", "public",
+			 "return", "sscanf", "string", "static", "switch",
+			 "typeof", "variant", "void", "while", >);
+
   mapping query_variables() { return variables; }
 /* do nothing */
   
@@ -537,6 +547,12 @@ import Getopt;
 	  return 1;
 	}else{
 	  string f;
+
+	  if (keywords[name]) {
+	    werror(sprintf("%s is a reserved word\n", name));
+	    return 1;
+	  }
+
 	  variables[name]=0;
 	  
 	  if(sscanf(c,"=%s",c))