Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.756.2.5
diff -u -r1.756.2.5 common.inc
--- includes/common.inc	13 Feb 2008 15:39:27 -0000	1.756.2.5
+++ includes/common.inc	27 Feb 2008 22:17:46 -0000
@@ -3272,16 +3272,21 @@
       unset($object->$field);
     }
 
-    // Build arrays for the fields, placeholders, and values in our query.
-    if (isset($object->$field)) {
+      // Build arrays for the fields, placeholders, and values in our query.
+    if (isset($object->$field) || array_key_exists($field, $object)) {
       $fields[] = $field;
-      $placeholders[] = db_type_placeholder($info['type']);
+      if (isset($object->$field)) {
+        $placeholders[] = db_type_placeholder($info['type']);
 
-      if (empty($info['serialize'])) {
-        $values[] = $object->$field;
+        if (empty($info['serialize'])) {
+          $values[] = $object->$field;
+        }
+        else {
+          $values[] = serialize($object->$field);
+        }
       }
       else {
-        $values[] = serialize($object->$field);
+        $placeholders[] = 'NULL';
       }
     }
   }
