diff --git a/sites/all/modules/hotkey/hotkey.install b/sites/all/modules/hotkey/hotkey.install
index 1214529..91c5b14 100644
--- a/sites/all/modules/hotkey/hotkey.install
+++ b/sites/all/modules/hotkey/hotkey.install
@@ -14,7 +14,7 @@ function hotkey_schema() {
         'unsigned' => TRUE,
         'not null' => TRUE,
       ),
-      'key' => array(
+      'hkey' => array(
         'description' => t('Accesskey shortcut to assign to form element or link'),
         'type' => 'varchar',
         'length' => 1,
@@ -42,14 +42,48 @@ function hotkey_schema() {
 }
 
 /**
+ * Rename the dangerous "key" column.
+ */
+function hotkey_update_6000() {
+  // There is no schema api for renaming columns.  We have to do it ourselves.
+  global $db_type;
+  switch ($db_type) {
+  case 'pgsql':
+    db_query("ALTER TABLE {hotkeys} RENAME COLUMN key TO hkey");
+    break;
+  case 'mysqli':
+  case 'mysql':
+  default:
+    db_query("ALTER TABLE {hotkeys} CHANGE COLUMN `key` hkey VARCHAR(1) NOT NULL");
+    break;
+  }
+
+  // However, we have to let the schema API do something or it won't believe
+  // that the update took place.  So we let it add a useless field and then
+  // later delete it.
+  $ret = array();
+  $useless_field = array(
+    'description' => t('This is a useless field.  We need to trick the schema api into thinking it did something.'),
+    'type' => 'varchar',
+    'length' => 1,
+    'not null' => TRUE,
+  );
+
+  db_add_field($ret, 'hotkeys', 'useless', $useless_field);
+  db_drop_field($ret, 'hotkeys', 'useless');
+
+  return $ret;
+}
+
+/**
  * Implementation of hook_install().
  */
 function hotkey_install() {
   drupal_install_schema('hotkey');
-  db_query("INSERT INTO {hotkeys} (key, type, data) VALUES ('s', 'form', '%s')", serialize(array('name' => t('Save'), 'id' => 'submit')));
-  db_query("INSERT INTO {hotkeys} (key, type, data) VALUES ('p', 'form', '%s')", serialize(array('name' => t('Preview'), 'id' => 'preview')));
-  db_query("INSERT INTO {hotkeys} (key, type, data) VALUES ('d', 'form', '%s')", serialize(array('name' => t('Delete'), 'id' => 'delete')));
-  db_query("INSERT INTO {hotkeys} (key, type, data) VALUES ('e', 'link', '%s')", serialize(array('name' => t('Edit'), 'path' => 'node/$nid/edit', 'query' => '', 'fragment' => '', 'attributes' => array())));
+  db_query("INSERT INTO {hotkeys} (hkey, type, data) VALUES ('s', 'form', '%s')", serialize(array('name' => t('Save'), 'id' => 'submit')));
+  db_query("INSERT INTO {hotkeys} (hkey, type, data) VALUES ('p', 'form', '%s')", serialize(array('name' => t('Preview'), 'id' => 'preview')));
+  db_query("INSERT INTO {hotkeys} (hkey, type, data) VALUES ('d', 'form', '%s')", serialize(array('name' => t('Delete'), 'id' => 'delete')));
+  db_query("INSERT INTO {hotkeys} (hkey, type, data) VALUES ('e', 'link', '%s')", serialize(array('name' => t('Edit'), 'path' => 'node/$nid/edit', 'query' => '', 'fragment' => '', 'attributes' => array())));
   drupal_set_message(t('Default hotkey for submit, preview, and delete form buttons created.'));
   drupal_set_message(t('Default hotkey for node edit link created.'));
 }
diff --git a/sites/all/modules/hotkey/hotkey.module b/sites/all/modules/hotkey/hotkey.module
index 16dc077..0e6c36d 100644
--- a/sites/all/modules/hotkey/hotkey.module
+++ b/sites/all/modules/hotkey/hotkey.module
@@ -17,7 +17,7 @@ function hotkey_form_alter(&$form, &$form_state, $form_id) {
     $rows = db_query("SELECT * FROM {hotkeys} WHERE type = 'form'");
     while ($row = db_fetch_object($rows)) {
       $data = unserialize($row->data);
-      $hotkeys['name'][$data['name']] = $row->key;
+      $hotkeys['name'][$data['name']] = $row->hkey;
       $hotkeys['id'][$data['name']] = $data['id'];
     }
     $form = _hotkey_add_form_accesskeys($form, $hotkeys);
@@ -36,7 +36,7 @@ function hotkey_link_alter(&$links, $node) {
       $new_link = array(
         'title' => $data['name'],
         'href' => str_replace('$nid', $node->nid, $data['path']),
-        'attributes' => array('accesskey' => $hotkey->key),
+        'attributes' => array('accesskey' => $hotkey->hkey),
       );
       if (!empty($data['query'])) {
         $new_link['query'] = $data['query'];
@@ -52,7 +52,7 @@ function hotkey_link_alter(&$links, $node) {
         }
       }
       if (empty($new_link['attributes']['title'])) {
-        $new_link['attributes']['title'] = _hotkey_title_text($hotkey->key);
+        $new_link['attributes']['title'] = _hotkey_title_text($hotkey->hkey);
       }
       $menuitem = menu_get_item($new_link['href']);
       if (isset($menuitem['access']) && $menuitem['access']==0) {
@@ -95,13 +95,13 @@ function hotkey_settings() {
   $hotkeys = db_query("SELECT * FROM {hotkeys} WHERE type = 'form'");
   while ($hotkey = db_fetch_object($hotkeys)) {
     $data = unserialize($hotkey->data);
-    $title = t('Hotkey: !hotkey_value Name: "!button_name" ', array('!hotkey_value' => $hotkey->key, '!button_name' => $data['name']));
+    $title = t('Hotkey: !hotkey_value Name: "!button_name" ', array('!hotkey_value' => $hotkey->hkey, '!button_name' => $data['name']));
     $button_hotkeys[$hotkey->hotkey_id] = $title;
   }
   $hotkeys = db_query("SELECT * FROM {hotkeys} WHERE type = 'link'");
   while ($hotkey = db_fetch_object($hotkeys)) {
     $data = unserialize($hotkey->data);
-    $title = t('Hotkey: !hotkey_value Name: "!link_name" ', array('!hotkey_value' => $hotkey->key, '!link_name' => $data['name']));
+    $title = t('Hotkey: !hotkey_value Name: "!link_name" ', array('!hotkey_value' => $hotkey->hkey, '!link_name' => $data['name']));
     $link_hotkeys[$hotkey->hotkey_id] = $title;
   }
   
@@ -216,7 +216,7 @@ function hotkey_settings_validate($form, &$form_state) {
     if (empty($form_state['values']['button_name'])) {
       form_set_error('button_name', t('A name is required for this hotkey.'));
     }
-    if ($hotkeys = db_query("SELECT * FROM {hotkeys} WHERE type = 'form' AND key = '%s'", $form_state['values']['button_key'])) {
+    if ($hotkeys = db_query("SELECT * FROM {hotkeys} WHERE type = 'form' AND hkey = '%s'", $form_state['values']['button_key'])) {
       while ($hotkey = db_fetch_object($hotkeys)) {
         $data = unserialize($hotkey->data);
         if ($data['name'] == $form_state['values']['button_name']) {
@@ -226,7 +226,7 @@ function hotkey_settings_validate($form, &$form_state) {
     }
   }
   if (!empty($form_state['values']['link_key'])) {
-    if (db_result(db_query("SELECT hotkey_id FROM {hotkeys} WHERE type = 'link' AND key = '%s'", $form_state['values']['link_key']))) {
+    if (db_result(db_query("SELECT hotkey_id FROM {hotkeys} WHERE type = 'link' AND hkey = '%s'", $form_state['values']['link_key']))) {
       form_set_error('link_key', t('A node link hotkey using %link_key already exists. You must delete the existing hotkey first to use this key.', array('%link_key' => $form_state['values']['link_key'])));
     }
     if (empty($form_state['values']['link_name'])) {
@@ -241,7 +241,7 @@ function hotkey_settings_submit($form, &$form_state) {
   switch ($form_state['values']['op']) {
     case t('Save configuration'):
       if (!empty($form_state['values']['button_key'])) {
-        db_query("INSERT INTO {hotkeys} (key, type, data) VALUES ('%s', 'form', '%s')", $form_state['values']['button_key'], serialize(array('name' => $form_state['values']['button_name'], 'id' => $form_state['values']['button_id'])));
+        db_query("INSERT INTO {hotkeys} (hkey, type, data) VALUES ('%s', 'form', '%s')", $form_state['values']['button_key'], serialize(array('name' => $form_state['values']['button_name'], 'id' => $form_state['values']['button_id'])));
       }
       if (!empty($form_state['values']['link_key'])) {
         $attributes = array();
@@ -254,7 +254,7 @@ function hotkey_settings_submit($form, &$form_state) {
             }
           }
         }
-        db_query("INSERT INTO {hotkeys} (key, type, data) VALUES ('%s', 'link', '%s')", $form_state['values']['link_key'],serialize(array('name' => $form_state['values']['link_name'], 'path' => $form_state['values']['link_path'], 'query' => $form_state['values']['link_query'], 'fragment' => $form_state['values']['link_fragment'], 'attributes' => $attributes)));
+        db_query("INSERT INTO {hotkeys} (hkey, type, data) VALUES ('%s', 'link', '%s')", $form_state['values']['link_key'],serialize(array('name' => $form_state['values']['link_name'], 'path' => $form_state['values']['link_path'], 'query' => $form_state['values']['link_query'], 'fragment' => $form_state['values']['link_fragment'], 'attributes' => $attributes)));
       }
       if ($form_state['values']['link_hotkeys'] != HOTKEY_NO_SELECT) {
         db_query("DELETE FROM {hotkeys} WHERE hotkey_id = %d", $form_state['values']['link_hotkeys']);
@@ -265,10 +265,10 @@ function hotkey_settings_submit($form, &$form_state) {
       break;
     case t('Reset to defaults'):
       db_query("TRUNCATE TABLE {hotkeys}");
-      db_query("INSERT INTO {hotkeys} (key, type, data) VALUES ('s', 'form', '%s')", serialize(array('name' => t('Save'), 'id' => 'submit')));
-      db_query("INSERT INTO {hotkeys} (key, type, data) VALUES ('p', 'form', '%s')", serialize(array('name' => t('Preview'), 'id' => 'preview')));
-      db_query("INSERT INTO {hotkeys} (key, type, data) VALUES ('d', 'form', '%s')", serialize(array('name' => t('Delete'), 'id' => 'delete')));
-      db_query("INSERT INTO {hotkeys} (key, type, data) VALUES ('e', 'link', '%s')", serialize(array('name' => t('Edit'), 'path' => 'node/$nid/edit', 'query' => '', 'fragment' => '', 'attributes' => array())));
+      db_query("INSERT INTO {hotkeys} (hkey, type, data) VALUES ('s', 'form', '%s')", serialize(array('name' => t('Save'), 'id' => 'submit')));
+      db_query("INSERT INTO {hotkeys} (hkey, type, data) VALUES ('p', 'form', '%s')", serialize(array('name' => t('Preview'), 'id' => 'preview')));
+      db_query("INSERT INTO {hotkeys} (hkey, type, data) VALUES ('d', 'form', '%s')", serialize(array('name' => t('Delete'), 'id' => 'delete')));
+      db_query("INSERT INTO {hotkeys} (hkey, type, data) VALUES ('e', 'link', '%s')", serialize(array('name' => t('Edit'), 'path' => 'node/$nid/edit', 'query' => '', 'fragment' => '', 'attributes' => array())));
       break;
     default:
       break;
