diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 711017d190e7b7f447fad266d3694db3e26775ea..f89c81076077c3c81b2ea9e0b1e13b1190673d00 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -31,6 +31,7 @@ Drupal 7.0, xxxx-xx-xx (development version)
     * Added an edit tab to taxonomy term pages.
     * Redesigned password strength validator.
     * Redesigned the add content type screen.
+    * Highlight duplicate URL aliases.
 - Documentation:
     * Hook API documentation now included in Drupal core.
 - News aggregator:
diff --git a/modules/blogapi/blogapi.module b/modules/blogapi/blogapi.module
index 6ada341c324904f796b05f898ee049978072dbaf..a947dbfecd5154140ee9060f859329e73dbe4229 100644
--- a/modules/blogapi/blogapi.module
+++ b/modules/blogapi/blogapi.module
@@ -584,7 +584,7 @@ function blogapi_mt_validate_terms($node) {
       $term_list = array_unique($node->taxonomy);
       $params = $term_list;
       $params[] = $node->type;
-      $result = db_query(db_rewrite_sql("SELECT t.tid, t.vid FROM {term_data} t INNER JOIN {vocabulary_node_types} n ON t.vid = n.vid WHERE t.tid IN (". db_placeholders($term_list) .") AND n.type = '%s'", 't', 'tid'), $params);
+      $result = db_query(db_rewrite_sql("SELECT t.tid, t.vid FROM {term_data} t INNER JOIN {vocabulary_node_type} n ON t.vid = n.vid WHERE t.tid IN (". db_placeholders($term_list) .") AND n.type = '%s'", 't', 'tid'), $params);
       $found_terms = array();
       $found_count = 0;
       while ($term = db_fetch_object($result)) {
@@ -597,7 +597,7 @@ function blogapi_mt_validate_terms($node) {
       }
     }
     // Look up all the vocabularies for this node type.
-    $result2 = db_query(db_rewrite_sql("SELECT v.vid, v.name, v.required, v.multiple FROM {vocabulary} v INNER JOIN {vocabulary_node_types} n ON v.vid = n.vid WHERE n.type = '%s'", 'v', 'vid'), $node->type);
+    $result2 = db_query(db_rewrite_sql("SELECT v.vid, v.name, v.required, v.multiple FROM {vocabulary} v INNER JOIN {vocabulary_node_type} n ON v.vid = n.vid WHERE n.type = '%s'", 'v', 'vid'), $node->type);
     // Check each vocabulary associated with this node type.
     while ($vocabulary = db_fetch_object($result2)) {
       // Required vocabularies must have at least one term.
diff --git a/modules/path/path.admin.inc b/modules/path/path.admin.inc
index 664f82d067b8c4b8deaf03255bb70361eef4fa5e..41853a945fadfb7dff679337884d270d959170f0 100644
--- a/modules/path/path.admin.inc
+++ b/modules/path/path.admin.inc
@@ -42,9 +42,19 @@ function path_admin_overview($keys = NULL) {
   $rows = array();
   $destination = drupal_get_destination();
   while ($data = db_fetch_object($result)) {
-    $row = array(check_plain($data->dst), check_plain($data->src), l(t('edit'), "admin/build/path/edit/$data->pid", array('query' => $destination)), l(t('delete'), "admin/build/path/delete/$data->pid", array('query' => $destination)));
+    $row = array(
+      // If the system path maps to a different URL alias, highlight this table
+      // row to let the user know of old aliases.
+      'class' => ($data->dst != drupal_get_path_alias($data->src, $data->language) ? 'warning' : NULL),
+      'data' => array(
+        l($data->dst, $data->src),
+        l($data->src, $data->src, array('alias' => TRUE)),
+        l(t('edit'), "admin/build/path/edit/$data->pid", array('query' => $destination)),
+        l(t('delete'), "admin/build/path/delete/$data->pid", array('query' => $destination)),
+      ),
+    );
     if ($multilanguage) {
-      array_splice($row, 2, 0, module_invoke('locale', 'language_name', $data->language));
+      array_splice($row['data'], 2, 0, module_invoke('locale', 'language_name', $data->language));
     }
     $rows[] = $row;
   }
diff --git a/modules/poll/poll.install b/modules/poll/poll.install
index 3e2f9edd8a3566bebba6edf26dc4c3f773b5b438..b560aad0ba016a699bb97fc5fefbf911cfca421e 100644
--- a/modules/poll/poll.install
+++ b/modules/poll/poll.install
@@ -48,7 +48,7 @@ function poll_schema() {
     'primary key' => array('nid'),
   );
 
-  $schema['poll_choices'] = array(
+  $schema['poll_choice'] = array(
     'description' => 'Stores information about all choices for all {poll}s.',
     'fields' => array(
       'chid' => array(
@@ -91,7 +91,7 @@ function poll_schema() {
     'primary key' => array('chid'),
   );
 
-  $schema['poll_votes'] = array(
+  $schema['poll_vote'] = array(
     'description' => 'Stores per-{users} votes for each {poll}.',
     'fields' => array(
       'chid' => array(
@@ -131,3 +131,13 @@ function poll_schema() {
 
   return $schema;
 }
+
+/**
+ * Rename {poll_choices} table to {poll_choice} and {poll_votes} to {poll_vote}.
+ */
+function poll_update_7001() {
+  $ret = array();
+  db_rename_table($ret, 'poll_choices', 'poll_choice');
+  db_rename_table($ret, 'poll_votes', 'poll_vote');
+  return $ret;
+}
diff --git a/modules/poll/poll.module b/modules/poll/poll.module
index f1b725424f5c274eec522429b8efaf7d69bd01fb..2cbd8edcdc25f178e004944315ad90e55b86750c 100644
--- a/modules/poll/poll.module
+++ b/modules/poll/poll.module
@@ -457,7 +457,7 @@ function poll_load($node) {
   $poll = db_fetch_object(db_query("SELECT runtime, active FROM {poll} WHERE nid = %d", $node->nid));
 
   // Load the appropriate choices into the $poll object.
-  $result = db_query("SELECT chid, chtext, chvotes, weight FROM {poll_choices} WHERE nid = %d ORDER BY weight", $node->nid);
+  $result = db_query("SELECT chid, chtext, chvotes, weight FROM {poll_choice} WHERE nid = %d ORDER BY weight", $node->nid);
   while ($choice = db_fetch_array($result)) {
     $poll->choice[$choice['chid']] = $choice;
   }
@@ -466,10 +466,10 @@ function poll_load($node) {
   $poll->allowvotes = FALSE;
   if (user_access('vote on polls') && $poll->active) {
     if ($user->uid) {
-      $result = db_fetch_object(db_query('SELECT chid FROM {poll_votes} WHERE nid = %d AND uid = %d', $node->nid, $user->uid));
+      $result = db_fetch_object(db_query('SELECT chid FROM {poll_vote} WHERE nid = %d AND uid = %d', $node->nid, $user->uid));
     }
     else {
-      $result = db_fetch_object(db_query("SELECT chid FROM {poll_votes} WHERE nid = %d AND hostname = '%s'", $node->nid, ip_address()));
+      $result = db_fetch_object(db_query("SELECT chid FROM {poll_vote} WHERE nid = %d AND hostname = '%s'", $node->nid, ip_address()));
     }
     if (isset($result->chid)) {
       $poll->vote = $result->chid;
@@ -498,7 +498,7 @@ function poll_insert($node) {
 
   foreach ($node->choice as $choice) {
     if ($choice['chtext'] != '') {
-      db_query("INSERT INTO {poll_choices} (nid, chtext, chvotes, weight) VALUES (%d, '%s', %d, %d)", $node->nid, $choice['chtext'], $choice['chvotes'], $choice['weight']);
+      db_query("INSERT INTO {poll_choice} (nid, chtext, chvotes, weight) VALUES (%d, '%s', %d, %d)", $node->nid, $choice['chtext'], $choice['chvotes'], $choice['weight']);
     }
   }
 }
@@ -515,14 +515,14 @@ function poll_update($node) {
   foreach ($node->choice as $key => $choice) {
     if (!empty($choice['chtext'])) {
       if (isset($choice['chid'])) {
-        db_query("UPDATE {poll_choices} SET chtext = '%s', chvotes = %d, weight = %d WHERE chid = %d", $choice['chtext'], (int)$choice['chvotes'], $choice['weight'], $choice['chid']);
+        db_query("UPDATE {poll_choice} SET chtext = '%s', chvotes = %d, weight = %d WHERE chid = %d", $choice['chtext'], (int)$choice['chvotes'], $choice['weight'], $choice['chid']);
       }
       else {
-        db_query("INSERT INTO {poll_choices} (nid, chtext, chvotes, weight) VALUES (%d, '%s', %d, %d)", $node->nid, $choice['chtext'], (int)$choice['chvotes'], $choice['weight']);
+        db_query("INSERT INTO {poll_choice} (nid, chtext, chvotes, weight) VALUES (%d, '%s', %d, %d)", $node->nid, $choice['chtext'], (int)$choice['chvotes'], $choice['weight']);
       }
     }
     else {
-      db_query("DELETE FROM {poll_votes} WHERE nid = %d AND chid = %d", $node->nid, $key);
+      db_query("DELETE FROM {poll_vote} WHERE nid = %d AND chid = %d", $node->nid, $key);
     }
   }
 }
@@ -532,8 +532,8 @@ function poll_update($node) {
  */
 function poll_delete($node) {
   db_query("DELETE FROM {poll} WHERE nid = %d", $node->nid);
-  db_query("DELETE FROM {poll_choices} WHERE nid = %d", $node->nid);
-  db_query("DELETE FROM {poll_votes} WHERE nid = %d", $node->nid);
+  db_query("DELETE FROM {poll_choice} WHERE nid = %d", $node->nid);
+  db_query("DELETE FROM {poll_vote} WHERE nid = %d", $node->nid);
 }
 
 /**
@@ -648,14 +648,14 @@ function poll_vote($form, &$form_state) {
 
   global $user;
   if ($user->uid) {
-    db_query('INSERT INTO {poll_votes} (nid, chid, uid) VALUES (%d, %d, %d)', $node->nid, $choice, $user->uid);
+    db_query('INSERT INTO {poll_vote} (nid, chid, uid) VALUES (%d, %d, %d)', $node->nid, $choice, $user->uid);
   }
   else {
-    db_query("INSERT INTO {poll_votes} (nid, chid, hostname) VALUES (%d, %d, '%s')", $node->nid, $choice, ip_address());
+    db_query("INSERT INTO {poll_vote} (nid, chid, hostname) VALUES (%d, %d, '%s')", $node->nid, $choice, ip_address());
   }
 
   // Add one to the votes.
-  db_query("UPDATE {poll_choices} SET chvotes = chvotes + 1 WHERE chid = %d", $choice);
+  db_query("UPDATE {poll_choice} SET chvotes = chvotes + 1 WHERE chid = %d", $choice);
 
   cache_clear_all();
   drupal_set_message(t('Your vote was recorded.'));
@@ -823,20 +823,20 @@ function poll_cancel($form, &$form_state) {
   global $user;
 
   if ($user->uid) {
-    db_query('DELETE FROM {poll_votes} WHERE nid = %d and uid = %d', $node->nid, $user->uid);
+    db_query('DELETE FROM {poll_vote} WHERE nid = %d and uid = %d', $node->nid, $user->uid);
   }
   else {
-    db_query("DELETE FROM {poll_votes} WHERE nid = %d and hostname = '%s'", $node->nid, ip_address());
+    db_query("DELETE FROM {poll_vote} WHERE nid = %d and hostname = '%s'", $node->nid, ip_address());
   }
 
   // Subtract from the votes.
-  db_query("UPDATE {poll_choices} SET chvotes = chvotes - 1 WHERE chid = %d", $node->vote);
+  db_query("UPDATE {poll_choice} SET chvotes = chvotes - 1 WHERE chid = %d", $node->vote);
 }
 
 /**
  * Implementation of hook_user_delete().
  */
 function poll_user_delete(&$edit, &$user) {
-  db_query('UPDATE {poll_votes} SET uid = 0 WHERE uid = %d', $user->uid);
+  db_query('UPDATE {poll_vote} SET uid = 0 WHERE uid = %d', $user->uid);
 }
 
diff --git a/modules/poll/poll.pages.inc b/modules/poll/poll.pages.inc
index 61f3bf6c2eebb96b022c0a98ca38434bb05bb00a..7c2bd0c29f0e28f11a9c326e6ef16361ab5dcc0f 100644
--- a/modules/poll/poll.pages.inc
+++ b/modules/poll/poll.pages.inc
@@ -11,7 +11,7 @@
  */
 function poll_page() {
   // List all polls.
-  $sql = db_rewrite_sql("SELECT n.nid, n.title, p.active, n.created, SUM(c.chvotes) AS votes FROM {node} n INNER JOIN {poll} p ON n.nid = p.nid INNER JOIN {poll_choices} c ON n.nid = c.nid WHERE n.status = 1 GROUP BY n.nid, n.title, p.active, n.created ORDER BY n.created DESC");
+  $sql = db_rewrite_sql("SELECT n.nid, n.title, p.active, n.created, SUM(c.chvotes) AS votes FROM {node} n INNER JOIN {poll} p ON n.nid = p.nid INNER JOIN {poll_choice} c ON n.nid = c.nid WHERE n.status = 1 GROUP BY n.nid, n.title, p.active, n.created ORDER BY n.created DESC");
   // Count all polls for the pager.
   $count_sql = db_rewrite_sql('SELECT COUNT(*) FROM {node} n INNER JOIN {poll} p ON n.nid = p.nid WHERE n.status = 1');
   $result = pager_query($sql, 15, 0, $count_sql);
@@ -35,7 +35,7 @@ function poll_votes($node) {
   $header[] = array('data' => t('Vote'), 'field' => 'pv.chorder');
   $header[] = array('data' => t('Vote'), 'field' => 'pc.weight');
 
-  $result = pager_query("SELECT pv.chid, pv.uid, pv.hostname, u.name FROM {poll_votes} pv INNER JOIN {poll_choices} pc ON pv.chid = pc.chid LEFT JOIN {users} u ON pv.uid = u.uid WHERE pv.nid = %d". tablesort_sql($header), 20, 0, NULL, $node->nid);
+  $result = pager_query("SELECT pv.chid, pv.uid, pv.hostname, u.name FROM {poll_vote} pv INNER JOIN {poll_choice} pc ON pv.chid = pc.chid LEFT JOIN {users} u ON pv.uid = u.uid WHERE pv.nid = %d". tablesort_sql($header), 20, 0, NULL, $node->nid);
   $rows = array();
   while ($vote = db_fetch_object($result)) {
     $rows[] = array(
diff --git a/modules/profile/profile.admin.inc b/modules/profile/profile.admin.inc
index 16f5860e474f506b52eff7e91053012619f77c12..3e154fb83d08c985e2dc027bb8c81cb6b84bb569 100644
--- a/modules/profile/profile.admin.inc
+++ b/modules/profile/profile.admin.inc
@@ -13,7 +13,7 @@
  * @see profile_admin_overview_submit()
  */
 function profile_admin_overview() {
-  $result = db_query('SELECT title, name, type, category, fid, weight FROM {profile_fields} ORDER BY category, weight');
+  $result = db_query('SELECT title, name, type, category, fid, weight FROM {profile_field} ORDER BY category, weight');
 
   $form = array();
   $categories = array();
@@ -74,7 +74,7 @@ function profile_admin_overview_submit($form, &$form_state) {
       $weight = $form_state['values'][$fid]['weight'];
       $category = $form_state['values'][$fid]['category'];
       if ($weight != $form[$fid]['weight']['#default_value'] || $category != $form[$fid]['category']['#default_value']) {
-        db_query("UPDATE {profile_fields} SET weight = %d, category = '%s' WHERE fid = %d", $weight, $category, $fid);
+        db_query("UPDATE {profile_field} SET weight = %d, category = '%s' WHERE fid = %d", $weight, $category, $fid);
       }
     }
   }
@@ -169,7 +169,7 @@ function profile_field_form(&$form_state, $arg = NULL) {
     if (is_numeric($arg)) {
       $fid = $arg;
 
-      $edit = db_fetch_array(db_query('SELECT * FROM {profile_fields} WHERE fid = %d', $fid));
+      $edit = db_fetch_array(db_query('SELECT * FROM {profile_field} WHERE fid = %d', $fid));
 
       if (!$edit) {
         drupal_not_found();
@@ -314,10 +314,10 @@ function profile_field_form_validate($form, &$form_state) {
     $query_suffix = ' AND fid != %d';
   }
 
-  if (db_result(db_query("SELECT fid FROM {profile_fields} WHERE title = '%s' AND category = '%s'" . $query_suffix, $args1))) {
+  if (db_result(db_query("SELECT fid FROM {profile_field} WHERE title = '%s' AND category = '%s'" . $query_suffix, $args1))) {
     form_set_error('title', t('The specified title is already in use.'));
   }
-  if (db_result(db_query("SELECT fid FROM {profile_fields} WHERE name = '%s'" . $query_suffix, $args2))) {
+  if (db_result(db_query("SELECT fid FROM {profile_field} WHERE name = '%s'" . $query_suffix, $args2))) {
     form_set_error('name', t('The specified name is already in use.'));
   }
   if ($form_state['values']['visibility'] == PROFILE_HIDDEN) {
@@ -341,13 +341,13 @@ function profile_field_form_submit($form, &$form_state) {
     $form_state['values']['page'] = '';
   }
   if (!isset($form_state['values']['fid'])) {
-    db_query("INSERT INTO {profile_fields} (title, name, explanation, category, type, weight, required, register, visibility, autocomplete, options, page) VALUES ('%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, %d, '%s', '%s')", $form_state['values']['title'], $form_state['values']['name'], $form_state['values']['explanation'], $form_state['values']['category'], $form_state['values']['type'], $form_state['values']['weight'], $form_state['values']['required'], $form_state['values']['register'], $form_state['values']['visibility'], $form_state['values']['autocomplete'], $form_state['values']['options'], $form_state['values']['page']);
+    db_query("INSERT INTO {profile_field} (title, name, explanation, category, type, weight, required, register, visibility, autocomplete, options, page) VALUES ('%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, %d, '%s', '%s')", $form_state['values']['title'], $form_state['values']['name'], $form_state['values']['explanation'], $form_state['values']['category'], $form_state['values']['type'], $form_state['values']['weight'], $form_state['values']['required'], $form_state['values']['register'], $form_state['values']['visibility'], $form_state['values']['autocomplete'], $form_state['values']['options'], $form_state['values']['page']);
 
     drupal_set_message(t('The field has been created.'));
     watchdog('profile', 'Profile field %field added under category %category.', array('%field' => $form_state['values']['title'], '%category' => $form_state['values']['category']), WATCHDOG_NOTICE, l(t('view'), 'admin/user/profile'));
   }
   else {
-    db_query("UPDATE {profile_fields} SET title = '%s', name = '%s', explanation = '%s', category = '%s', weight = %d, required = %d, register = %d, visibility = %d, autocomplete = %d, options = '%s', page = '%s' WHERE fid = %d", $form_state['values']['title'], $form_state['values']['name'], $form_state['values']['explanation'], $form_state['values']['category'], $form_state['values']['weight'], $form_state['values']['required'], $form_state['values']['register'], $form_state['values']['visibility'], $form_state['values']['autocomplete'], $form_state['values']['options'], $form_state['values']['page'], $form_state['values']['fid']);
+    db_query("UPDATE {profile_field} SET title = '%s', name = '%s', explanation = '%s', category = '%s', weight = %d, required = %d, register = %d, visibility = %d, autocomplete = %d, options = '%s', page = '%s' WHERE fid = %d", $form_state['values']['title'], $form_state['values']['name'], $form_state['values']['explanation'], $form_state['values']['category'], $form_state['values']['weight'], $form_state['values']['required'], $form_state['values']['register'], $form_state['values']['visibility'], $form_state['values']['autocomplete'], $form_state['values']['options'], $form_state['values']['page'], $form_state['values']['fid']);
 
     drupal_set_message(t('The field has been updated.'));
   }
@@ -362,7 +362,7 @@ function profile_field_form_submit($form, &$form_state) {
  * Menu callback; deletes a field from all user profiles.
  */
 function profile_field_delete(&$form_state, $fid) {
-  $field = db_fetch_object(db_query("SELECT title FROM {profile_fields} WHERE fid = %d", $fid));
+  $field = db_fetch_object(db_query("SELECT title FROM {profile_field} WHERE fid = %d", $fid));
   if (!$field) {
     drupal_not_found();
     return;
@@ -380,8 +380,8 @@ function profile_field_delete(&$form_state, $fid) {
  * Process a field delete form submission.
  */
 function profile_field_delete_submit($form, &$form_state) {
-  db_query('DELETE FROM {profile_fields} WHERE fid = %d', $form_state['values']['fid']);
-  db_query('DELETE FROM {profile_values} WHERE fid = %d', $form_state['values']['fid']);
+  db_query('DELETE FROM {profile_field} WHERE fid = %d', $form_state['values']['fid']);
+  db_query('DELETE FROM {profile_value} WHERE fid = %d', $form_state['values']['fid']);
 
   cache_clear_all();
 
@@ -397,7 +397,7 @@ function profile_field_delete_submit($form, &$form_state) {
  */
 function profile_admin_settings_autocomplete($string) {
   $matches = array();
-  $result = db_query_range("SELECT category FROM {profile_fields} WHERE LOWER(category) LIKE LOWER(:category)", array(':category' => $string .'%'), 0, 10);
+  $result = db_query_range("SELECT category FROM {profile_field} WHERE LOWER(category) LIKE LOWER(:category)", array(':category' => $string .'%'), 0, 10);
   while ($data = db_fetch_object($result)) {
     $matches[$data->category] = check_plain($data->category);
   }
diff --git a/modules/profile/profile.install b/modules/profile/profile.install
index e21d8a11adeab78d1fc770f7258178bfe2d51b27..a4c1fd24f4ea18a538378dcdcf477b8582dd488d 100644
--- a/modules/profile/profile.install
+++ b/modules/profile/profile.install
@@ -23,7 +23,7 @@ function profile_uninstall() {
  * Implementation of hook_schema().
  */
 function profile_schema() {
-  $schema['profile_fields'] = array(
+  $schema['profile_field'] = array(
     'description' => 'Stores profile field information.',
     'fields' => array(
       'fid' => array(
@@ -117,7 +117,7 @@ function profile_schema() {
     'primary key' => array('fid'),
   );
 
-  $schema['profile_values'] = array(
+  $schema['profile_value'] = array(
     'description' => 'Stores values for profile fields.',
     'fields' => array(
       'fid' => array(
@@ -125,7 +125,7 @@ function profile_schema() {
         'unsigned' => TRUE,
         'not null' => TRUE,
         'default' => 0,
-        'description' => 'The {profile_fields}.fid of the field.',
+        'description' => 'The {profile_field}.fid of the field.',
       ),
       'uid' => array(
         'type' => 'int',
@@ -148,3 +148,13 @@ function profile_schema() {
 
   return $schema;
 }
+
+/**
+ * Rename {profile_fields} table to {profile_field} and {profile_values} to {profile_value}.
+ */
+function profile_update_7001() {
+  $ret = array();
+  db_rename_table($ret, 'profile_fields', 'profile_field');
+  db_rename_table($ret, 'profile_values', 'profile_value');
+  return $ret;
+}
diff --git a/modules/profile/profile.module b/modules/profile/profile.module
index 9352f4b3b281ae94dd5988df21baaa10b54b241a..6ecd27c67994e5ba8350ea265bb79f8f87f9d5f2 100644
--- a/modules/profile/profile.module
+++ b/modules/profile/profile.module
@@ -138,7 +138,7 @@ function profile_block($op = 'list', $delta = '', $edit = array()) {
   elseif ($op == 'configure') {
     // Compile a list of fields to show
     $fields = array();
-    $result = db_query('SELECT name, title, weight, visibility FROM {profile_fields} WHERE visibility IN (%d, %d) ORDER BY weight', PROFILE_PUBLIC, PROFILE_PUBLIC_LISTINGS);
+    $result = db_query('SELECT name, title, weight, visibility FROM {profile_field} WHERE visibility IN (%d, %d) ORDER BY weight', PROFILE_PUBLIC, PROFILE_PUBLIC_LISTINGS);
     while ($record = db_fetch_object($result)) {
       $fields[$record->name] = check_plain($record->title);
     }
@@ -165,7 +165,7 @@ function profile_block($op = 'list', $delta = '', $edit = array()) {
         if ($use_fields = variable_get('profile_block_author_fields', array())) {
           // Compile a list of fields to show.
           $fields = array();
-          $result = db_query('SELECT name, title, type, visibility, weight FROM {profile_fields} WHERE visibility IN (%d, %d) ORDER BY weight', PROFILE_PUBLIC, PROFILE_PUBLIC_LISTINGS);
+          $result = db_query('SELECT name, title, type, visibility, weight FROM {profile_field} WHERE visibility IN (%d, %d) ORDER BY weight', PROFILE_PUBLIC, PROFILE_PUBLIC_LISTINGS);
           while ($record = db_fetch_object($result)) {
             // Ensure that field is displayed only if it is among the defined block fields and, if it is private, the user has appropriate permissions.
             if (isset($use_fields[$record->name]) && $use_fields[$record->name]) {
@@ -253,11 +253,11 @@ function profile_user_categories(&$edit, &$user, $category = NULL) {
  * Implementation of hook_user_delete().
  */
 function profile_user_delete(&$edit, &$user, $category = NULL) {
-  db_query('DELETE FROM {profile_values} WHERE uid = %d', $user->uid);
+  db_query('DELETE FROM {profile_value} WHERE uid = %d', $user->uid);
 }
 
 function profile_load_profile(&$user) {
-  $result = db_query('SELECT f.name, f.type, v.value FROM {profile_fields} f INNER JOIN {profile_values} v ON f.fid = v.fid WHERE uid = %d', $user->uid);
+  $result = db_query('SELECT f.name, f.type, v.value FROM {profile_field} f INNER JOIN {profile_value} v ON f.fid = v.fid WHERE uid = %d', $user->uid);
   while ($field = db_fetch_object($result)) {
     if (empty($user->{$field->name})) {
       $user->{$field->name} = _profile_field_serialize($field->type) ? unserialize($field->value) : $field->value;
@@ -271,8 +271,8 @@ function profile_save_profile(&$edit, &$user, $category, $register = FALSE) {
     if (_profile_field_serialize($field->type)) {
       $edit[$field->name] = serialize($edit[$field->name]);
     }
-    db_query("DELETE FROM {profile_values} WHERE fid = %d AND uid = %d", $field->fid, $user->uid);
-    db_query("INSERT INTO {profile_values} (fid, uid, value) VALUES (%d, %d, '%s')", $field->fid, $user->uid, $edit[$field->name]);
+    db_query("DELETE FROM {profile_value} WHERE fid = %d AND uid = %d", $field->fid, $user->uid);
+    db_query("INSERT INTO {profile_value} (fid, uid, value) VALUES (%d, %d, '%s')", $field->fid, $user->uid, $edit[$field->name]);
     // Mark field as handled (prevents saving to user->data).
     $edit[$field->name] = NULL;
   }
@@ -331,10 +331,10 @@ function profile_view_profile(&$user) {
 
   // Show private fields to administrators and people viewing their own account.
   if (user_access('administer users') || $GLOBALS['user']->uid == $user->uid) {
-    $result = db_query('SELECT * FROM {profile_fields} WHERE visibility != %d ORDER BY category, weight', PROFILE_HIDDEN);
+    $result = db_query('SELECT * FROM {profile_field} WHERE visibility != %d ORDER BY category, weight', PROFILE_HIDDEN);
   }
   else {
-    $result = db_query('SELECT * FROM {profile_fields} WHERE visibility != %d AND visibility != %d ORDER BY category, weight', PROFILE_PRIVATE, PROFILE_HIDDEN);
+    $result = db_query('SELECT * FROM {profile_field} WHERE visibility != %d AND visibility != %d ORDER BY category, weight', PROFILE_PRIVATE, PROFILE_HIDDEN);
   }
 
   $fields = array();
@@ -480,7 +480,7 @@ function profile_validate_profile($edit, $category) {
 }
 
 function profile_categories() {
-  $result = db_query("SELECT DISTINCT(category) FROM {profile_fields}");
+  $result = db_query("SELECT DISTINCT(category) FROM {profile_field}");
   $data = array();
   while ($category = db_fetch_object($result)) {
     $data[] = array(
@@ -502,7 +502,7 @@ function profile_category_access($account, $category) {
     return TRUE;
   }
   else {
-    return user_edit_access($account) && db_result(db_query("SELECT COUNT(*) FROM {profile_fields} WHERE category = '%s' AND visibility <> %d", $category, PROFILE_HIDDEN));
+    return user_edit_access($account) && db_result(db_query("SELECT COUNT(*) FROM {profile_field} WHERE category = '%s' AND visibility <> %d", $category, PROFILE_HIDDEN));
   }
 }
 
@@ -589,7 +589,7 @@ function _profile_field_serialize($type = NULL) {
 
 function _profile_get_fields($category, $register = FALSE) {
   $args = array();
-  $sql = 'SELECT * FROM {profile_fields} WHERE ';
+  $sql = 'SELECT * FROM {profile_field} WHERE ';
   $filters = array();
   if ($register) {
     $filters[] = 'register = 1';
diff --git a/modules/profile/profile.pages.inc b/modules/profile/profile.pages.inc
index fa8dbef31232b7820d45ce8b6cb0bdea6e31aaa8..9cb761a28f9e1cc23c06428ae74c666301924b7c 100644
--- a/modules/profile/profile.pages.inc
+++ b/modules/profile/profile.pages.inc
@@ -13,7 +13,7 @@ function profile_browse() {
   // Ensure that the path is converted to 3 levels always.
   list(, $name, $value) = array_pad(explode('/', $_GET['q'], 3), 3, '');
 
-  $field = db_fetch_object(db_query("SELECT DISTINCT(fid), type, title, page, visibility FROM {profile_fields} WHERE name = '%s'", $name));
+  $field = db_fetch_object(db_query("SELECT DISTINCT(fid), type, title, page, visibility FROM {profile_field} WHERE name = '%s'", $name));
 
   if ($name && $field->fid) {
     // Only allow browsing of fields that have a page title set.
@@ -29,7 +29,7 @@ function profile_browse() {
 
     // Compile a list of fields to show.
     $fields = array();
-    $result = db_query('SELECT name, title, type, weight, page FROM {profile_fields} WHERE fid != %d AND visibility = %d ORDER BY weight', $field->fid, PROFILE_PUBLIC_LISTINGS);
+    $result = db_query('SELECT name, title, type, weight, page FROM {profile_field} WHERE fid != %d AND visibility = %d ORDER BY weight', $field->fid, PROFILE_PUBLIC_LISTINGS);
     while ($record = db_fetch_object($result)) {
       $fields[] = $record;
     }
@@ -55,7 +55,7 @@ function profile_browse() {
     }
 
     // Extract the affected users:
-    $result = pager_query("SELECT u.uid, u.access FROM {users} u INNER JOIN {profile_values} v ON u.uid = v.uid WHERE v.fid = %d AND $query AND u.access != 0 AND u.status != 0 ORDER BY u.access DESC", 20, 0, NULL, $arguments);
+    $result = pager_query("SELECT u.uid, u.access FROM {users} u INNER JOIN {profile_value} v ON u.uid = v.uid WHERE v.fid = %d AND $query AND u.access != 0 AND u.status != 0 ORDER BY u.access DESC", 20, 0, NULL, $arguments);
 
     $content = '';
     while ($account = db_fetch_object($result)) {
@@ -82,7 +82,7 @@ function profile_browse() {
   else {
     // Compile a list of fields to show.
     $fields = array();
-    $result = db_query('SELECT name, title, type, weight, page, visibility FROM {profile_fields} WHERE visibility = %d ORDER BY category, weight', PROFILE_PUBLIC_LISTINGS);
+    $result = db_query('SELECT name, title, type, weight, page, visibility FROM {profile_field} WHERE visibility = %d ORDER BY category, weight', PROFILE_PUBLIC_LISTINGS);
     while ($record = db_fetch_object($result)) {
       $fields[] = $record;
     }
@@ -109,8 +109,8 @@ function profile_browse() {
  */
 function profile_autocomplete($field, $string) {
   $matches = array();
-  if (db_result(db_query("SELECT COUNT(*) FROM {profile_fields} WHERE fid = %d AND autocomplete = 1", $field))) {
-    $result = db_query_range("SELECT value FROM {profile_values} WHERE fid = :fid AND LOWER(value) LIKE LOWER(:value) GROUP BY value ORDER BY value ASC", array(
+  if (db_result(db_query("SELECT COUNT(*) FROM {profile_field} WHERE fid = %d AND autocomplete = 1", $field))) {
+    $result = db_query_range("SELECT value FROM {profile_value} WHERE fid = :fid AND LOWER(value) LIKE LOWER(:value) GROUP BY value ORDER BY value ASC", array(
       ':fid' => $field,
       ':value' => $string .'%',
     ), 0, 10);
diff --git a/modules/profile/profile.test b/modules/profile/profile.test
index 4ffa921309c7dd8abd6aa288b1f4b24f8951c01f..7dd22c043d7118650662d5c64f2d5c15adb2b3d5 100644
--- a/modules/profile/profile.test
+++ b/modules/profile/profile.test
@@ -37,7 +37,7 @@ class ProfileTestCase extends DrupalWebTestCase {
     $edit['explanation'] = $this->randomName(50);
 
     $this->drupalPost('admin/user/profile/add/' . $type, $edit, t('Save field'));
-    $fid = db_result(db_query("SELECT fid FROM {profile_fields} WHERE title = '%s'", $title));
+    $fid = db_result(db_query("SELECT fid FROM {profile_field} WHERE title = '%s'", $title));
     $this->assertTrue($fid, t('New Profile field has been entered in the database'));
 
     // Check that the new field is appearing on the user edit form.
diff --git a/modules/system/system.css b/modules/system/system.css
index 72c0816ba8da0a6d149b7f208ca8f9e35e8a88bb..abd34d24979e2e11216a918b32847bfdf2b22edf 100644
--- a/modules/system/system.css
+++ b/modules/system/system.css
@@ -77,7 +77,7 @@ div.error, tr.error {
 div.warning {
   border: 1px solid #f0c020;
 }
-div.warning, tr.warning {
+div.warning, table tr.warning {
   background: #ffd;
   color: #220;
   padding: 2px;
diff --git a/modules/taxonomy/taxonomy.install b/modules/taxonomy/taxonomy.install
index 12e99c68788b992fb3038dcc0e5820fbbc447db7..fb3f0ff1bdf978441cef1c6240ee84e507f396f1 100644
--- a/modules/taxonomy/taxonomy.install
+++ b/modules/taxonomy/taxonomy.install
@@ -257,7 +257,7 @@ function taxonomy_schema() {
     ),
   );
 
-  $schema['vocabulary_node_types'] = array(
+  $schema['vocabulary_node_type'] = array(
     'description' => 'Stores which node types vocabularies may be used with.',
     'fields' => array(
       'vid' => array(
@@ -284,3 +284,11 @@ function taxonomy_schema() {
   return $schema;
 }
 
+/**
+ * Rename {vocabulary_node_types} table to {vocabulary_node_type}.
+ */
+function taxonomy_update_7001() {
+  $ret = array();
+  db_rename_table($ret, 'vocabulary_node_types', 'vocabulary_node_type');
+  return $ret;
+}
diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index 28f85d994bf49a4227e8523d3971dd6004a04e7d..958f837739a2af5ba1af39a4190e77360272c6ba 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -227,16 +227,16 @@ function taxonomy_vocabulary_save($vocabulary) {
 
   if (!empty($vocabulary->vid) && !empty($vocabulary->name)) {
     $status = drupal_write_record('vocabulary', $vocabulary, 'vid');
-    db_query("DELETE FROM {vocabulary_node_types} WHERE vid = %d", $vocabulary->vid);
+    db_query("DELETE FROM {vocabulary_node_type} WHERE vid = %d", $vocabulary->vid);
     foreach ($vocabulary->nodes as $type => $selected) {
-      db_query("INSERT INTO {vocabulary_node_types} (vid, type) VALUES (%d, '%s')", $vocabulary->vid, $type);
+      db_query("INSERT INTO {vocabulary_node_type} (vid, type) VALUES (%d, '%s')", $vocabulary->vid, $type);
     }
     module_invoke_all('taxonomy_vocabulary_update', $vocabulary);
   }
   elseif (empty($vocabulary->vid)) {
     $status = drupal_write_record('vocabulary', $vocabulary);
     foreach ($vocabulary->nodes as $type => $selected) {
-      db_query("INSERT INTO {vocabulary_node_types} (vid, type) VALUES (%d, '%s')", $vocabulary->vid, $type);
+      db_query("INSERT INTO {vocabulary_node_type} (vid, type) VALUES (%d, '%s')", $vocabulary->vid, $type);
     }
     module_invoke_all('taxonomy_vocabulary_insert', $vocabulary);
   }
@@ -258,7 +258,7 @@ function taxonomy_vocabulary_delete($vid) {
   $vocabulary = (array) taxonomy_vocabulary_load($vid);
 
   db_query('DELETE FROM {vocabulary} WHERE vid = %d', $vid);
-  db_query('DELETE FROM {vocabulary_node_types} WHERE vid = %d', $vid);
+  db_query('DELETE FROM {vocabulary_node_type} WHERE vid = %d', $vid);
   $result = db_query('SELECT tid FROM {term_data} WHERE vid = %d', $vid);
   while ($term = db_fetch_object($result)) {
     taxonomy_term_delete($term->tid);
@@ -469,10 +469,10 @@ function taxonomy_form_all($free_tags = 0) {
  */
 function taxonomy_get_vocabularies($type = NULL) {
   if ($type) {
-    $result = db_query(db_rewrite_sql("SELECT v.vid, v.*, n.type FROM {vocabulary} v LEFT JOIN {vocabulary_node_types} n ON v.vid = n.vid WHERE n.type = '%s' ORDER BY v.weight, v.name", 'v', 'vid'), $type);
+    $result = db_query(db_rewrite_sql("SELECT v.vid, v.*, n.type FROM {vocabulary} v LEFT JOIN {vocabulary_node_type} n ON v.vid = n.vid WHERE n.type = '%s' ORDER BY v.weight, v.name", 'v', 'vid'), $type);
   }
   else {
-    $result = db_query(db_rewrite_sql('SELECT v.*, n.type FROM {vocabulary} v LEFT JOIN {vocabulary_node_types} n ON v.vid = n.vid ORDER BY v.weight, v.name', 'v', 'vid'));
+    $result = db_query(db_rewrite_sql('SELECT v.*, n.type FROM {vocabulary} v LEFT JOIN {vocabulary_node_type} n ON v.vid = n.vid ORDER BY v.weight, v.name', 'v', 'vid'));
   }
 
   $vocabularies = array();
@@ -516,7 +516,7 @@ function taxonomy_form_alter(&$form, $form_state, $form_id) {
       $terms = $node->taxonomy;
     }
 
-    $c = db_query(db_rewrite_sql("SELECT v.* FROM {vocabulary} v INNER JOIN {vocabulary_node_types} n ON v.vid = n.vid WHERE n.type = '%s' ORDER BY v.weight, v.name", 'v', 'vid'), $node->type);
+    $c = db_query(db_rewrite_sql("SELECT v.* FROM {vocabulary} v INNER JOIN {vocabulary_node_type} n ON v.vid = n.vid WHERE n.type = '%s' ORDER BY v.weight, v.name", 'v', 'vid'), $node->type);
 
     while ($vocabulary = db_fetch_object($c)) {
       if ($vocabulary->tags) {
@@ -739,10 +739,10 @@ function taxonomy_node_delete_revision($node) {
  */
 function taxonomy_node_type($op, $info) {
   if ($op == 'update' && !empty($info->old_type) && $info->type != $info->old_type) {
-    db_query("UPDATE {vocabulary_node_types} SET type = '%s' WHERE type = '%s'", $info->type, $info->old_type);
+    db_query("UPDATE {vocabulary_node_type} SET type = '%s' WHERE type = '%s'", $info->type, $info->old_type);
   }
   elseif ($op == 'delete') {
-    db_query("DELETE FROM {vocabulary_node_types} WHERE type = '%s'", $info->type);
+    db_query("DELETE FROM {vocabulary_node_type} WHERE type = '%s'", $info->type);
   }
 }
 
@@ -1022,7 +1022,7 @@ function taxonomy_vocabulary_load($vid, $reset = FALSE) {
     // that cached, and we will not try to load this later.
     $vocabularies[$vid] = FALSE;
     // Try to load the data and fill up the object.
-    $result = db_query('SELECT v.*, n.type FROM {vocabulary} v LEFT JOIN {vocabulary_node_types} n ON v.vid = n.vid WHERE v.vid = %d', $vid);
+    $result = db_query('SELECT v.*, n.type FROM {vocabulary} v LEFT JOIN {vocabulary_node_type} n ON v.vid = n.vid WHERE v.vid = %d', $vid);
     $node_types = array();
     while ($voc = db_fetch_object($result)) {
       if (!empty($voc->type)) {
diff --git a/profiles/default/default.profile b/profiles/default/default.profile
index 675a60b1334ef2b0705b88f237004edf70c229fe..1af48d2de79d6085d9b55f562c019b61694d183d 100644
--- a/profiles/default/default.profile
+++ b/profiles/default/default.profile
@@ -145,7 +145,7 @@ function default_profile_tasks(&$task, $url) {
     'module' => 'taxonomy',
     'weight' => 0,
   ))->execute();
-  db_insert('vocabulary_node_types')->fields(array('vid' => $vid, 'type' => 'article'))->execute();
+  db_insert('vocabulary_node_type')->fields(array('vid' => $vid, 'type' => 'article'))->execute();
 
   // Update the menu router information.
   menu_rebuild();