--- content.inc.orig	2007-05-14 09:31:50.000000000 +0100
+++ content.inc	2007-10-17 00:13:32.156250000 +0100
@@ -71,6 +71,8 @@ function content_node_import_prepare(&$n
       foreach ($db_info['columns'] as $column => $info) {
         $dummy_name = $field['field_name'] .'_'. $column;
 
+        $multiple = FALSE;
+		
         // Force a node value for missing data.
         if (empty($node->$dummy_name)) {
           $values = array(0 => $globals['fields'][$dummy_name]);
@@ -79,6 +81,7 @@ function content_node_import_prepare(&$n
           // Explode multiple values to create the $delta and $value for each.
           if ($field['multiple']) {
             $values = explode('||', $node->$dummy_name);
+			$multiple = TRUE;
           }
           else {
             $values = array(0 => $node->$dummy_name);
@@ -157,14 +160,30 @@ function content_node_import_prepare(&$n
               $value = floatval($value);
               break;
           }
-
+		  
+		  if ($field['widget']['type'] == 'options_buttons') {
+		    $delta = 'keys';
+		  }
+		  
+		  if ($field['widget']['type'] == 'options_select') {
+		    $delta = 'key';
+		  }
+		  
           // Set the correct node field values.
           if (!is_array($node->$field['field_name'])) {
-            $node->$field_name = array($delta => array($column => $value));
-          }
-          else {
-            $node->$field_name += array($delta => array($column => $value));
+            $node->$field_name = array();
           }
+		  if (!$multiple) {
+		    if ($delta !== 'key') {
+              $node->{$field_name}[$delta][$column] = $value;
+			}
+			else {
+			  $node->{$field_name}[$delta] = $value;
+			}
+		  }
+		  else {
+		    $node->{$field_name}[$delta][$value] = $value;
+		  }
         }
       }
 
