diff --git a/lib/modules/Sql.pmod/mysql.pike b/lib/modules/Sql.pmod/mysql.pike
index 4571b3bf8eeb2d430b95c4d433dd9bb52915a801..2990646bec44cccae2301295949b4e0134c5a3ef 100644
--- a/lib/modules/Sql.pmod/mysql.pike
+++ b/lib/modules/Sql.pmod/mysql.pike
@@ -1,5 +1,5 @@
 /*
- * $Id: mysql.pike,v 1.15 2002/01/02 06:20:58 per-bash Exp $
+ * $Id: mysql.pike,v 1.16 2002/01/17 20:50:50 nilsson Exp $
  *
  * Glue for the Mysql-module
  */
@@ -152,6 +152,50 @@ int|object big_query(string q, mapping(string|int:mixed)|void bindings)
   return ::big_query(.sql_util.emulate_bindings(q,bindings,this_object()));
 }
 
+int(0..1) is_keyword( string name )
+//! Return 1 if the argument @[name] is a mysql keyword.
+{
+  return (<
+      "action", "add", "aggregate", "all", "alter", "after", "and", "as",
+      "asc", "avg", "avg_row_length", "auto_increment", "between", "bigint",
+      "bit", "binary", "blob", "bool", "both", "by", "cascade", "case",
+      "char", "character", "change", "check", "checksum", "column",
+      "columns", "comment", "constraint", "create", "cross", "current_date",
+      "current_time", "current_timestamp", "data", "database", "databases",
+      "date", "datetime", "day", "day_hour", "day_minute", "day_second",
+      "dayofmonth", "dayofweek", "dayofyear", "dec", "decimal", "default",
+      "delayed", "delay_key_write", "delete", "desc", "describe", "distinct",
+      "distinctrow", "double", "drop", "end", "else", "escape", "escaped",
+      "enclosed", "enum", "explain", "exists", "fields", "file", "first",
+      "float", "float4", "float8", "flush", "foreign", "from", "for", "full",
+      "function", "global", "grant", "grants", "group", "having", "heap",
+      "high_priority", "hour", "hour_minute", "hour_second", "hosts",
+      "identified", "ignore", "in", "index", "infile", "inner", "insert",
+      "insert_id", "int", "integer", "interval", "int1", "int2", "int3",
+      "int4", "int8", "into", "if", "is", "isam", "join", "key", "keys",
+      "kill", "last_insert_id", "leading", "left", "length", "like",
+      "lines", "limit", "load", "local", "lock", "logs", "long", "longblob",
+      "longtext", "low_priority", "max", "max_rows", "match", "mediumblob",
+      "mediumtext", "mediumint", "middleint", "min_rows", "minute",
+      "minute_second", "modify", "month", "monthname", "myisam", "natural",
+      "numeric", "no", "not", "null", "on", "optimize", "option",
+      "optionally", "or", "order", "outer", "outfile", "pack_keys",
+      "partial", "password", "precision", "primary", "procedure", "process",
+      "processlist", "privileges", "read", "real", "references", "reload",
+      "regexp", "rename", "replace", "restrict", "returns", "revoke",
+      "rlike", "row", "rows", "second", "select", "set", "show", "shutdown",
+      "smallint", "soname", "sql_big_tables", "sql_big_selects",
+      "sql_low_priority_updates", "sql_log_off", "sql_log_update",
+      "sql_select_limit", "sql_small_result", "sql_big_result",
+      "sql_warnings", "straight_join", "starting", "status", "string",
+      "table", "tables", "temporary", "terminated", "text", "then", "time",
+      "timestamp", "tinyblob", "tinytext", "tinyint", "trailing", "to",
+      "type", "use", "using", "unique", "unlock", "unsigned", "update",
+      "usage", "values", "varchar", "variables", "varying", "varbinary",
+      "with", "write", "when", "where", "year", "year_month", "zerofill",      
+  >)[ lower_case(name) ];
+}
+
 #else /* !constant(Mysql.mysql) */
 #error "Mysql support not available.\n"
 #endif /* constant(Mysql.mysql) */