Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.1176
diff -u -r1.1176 common.inc
--- includes/common.inc	9 Jun 2010 14:55:30 -0000	1.1176
+++ includes/common.inc	10 Jun 2010 07:20:34 -0000
@@ -5935,6 +5935,13 @@
     }
   }
 
+  // If we are doing an update, remove the fields listed in $primary_keys,
+  // since it is unnecessary to update the columns that are used to select
+  // rows.
+  foreach ($primary_keys as $key) {
+    unset($fields[$key]);
+  }
+
   if (empty($fields)) {
     // No changes requested.
     // If we began with an array, convert back so we don't surprise the caller.
Index: includes/path.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/path.inc,v
retrieving revision 1.63
diff -u -r1.63 path.inc
--- includes/path.inc	18 May 2010 18:26:30 -0000	1.63
+++ includes/path.inc	10 Jun 2010 07:20:35 -0000
@@ -393,7 +393,7 @@
   $path += array('pid' => NULL, 'language' => LANGUAGE_NONE);
 
   // Insert or update the alias.
-  $status = drupal_write_record('url_alias', $path, (!empty($path['pid']) ? 'pid' : NULL));
+  $status = drupal_write_record('url_alias', $path, (!empty($path['pid']) ? 'pid' : array()));
 
   // Verify that a record was written.
   if (isset($status) && $status) {
