--- content.module.original	2008-03-11 16:56:49.000000000 -0500
+++ content.module	2008-03-11 16:57:51.000000000 -0500
@@ -613,7 +613,18 @@
 
   $return = array();
   if (count($type['fields'])) {
+    // if the node already exists, load up a copy of what's in the db to compare with
+    if ($node->nid) $original_node = node_load($node->nid);
     foreach ($type['fields'] as $field) {
+      if ($original_node) {
+        // if there's a field in the database that we don't have in the current object,
+	// we just leave it alone
+        if ( ! isset($node->$field['field_name']) ) {
+	  $node->$field['field_name'] = $original_node->$field['field_name'];
+	  break;
+	} 
+      }
+
       $node_field = isset($node->$field['field_name']) ? $node->$field['field_name'] : array();
 
       $module = $widget_types[$field['widget']['type']]['module'];
