--- ../../orig.modules/salesforce_account/salesforce_sync_api.inc	2007-11-20 12:51:57.000000000 -0800
+++ salesforce_sync_api.inc	2008-03-18 12:56:17.000000000 -0700
@@ -83,11 +103,14 @@ function _salesforce_sync_make_field ( $
 	}
 	
 	// For select fields
-	if ( $field_info['type'] == 'picklist') {
+	if ( $field_info['type'] == 'picklist' || $field_info['type'] == 'multipicklist') {
 		$opts = array();
 		foreach($field_info['picklistValues'] as $opt) {
 			$opts[] = $opt['value']."|".$opt['label'];
 		}
+		if ($field_info['type'] == 'multipicklist') {
+		  $values2['multiple'] = 1;
+		}
 
 		$values2['allowed_values'] = implode("\n", $opts);
 	}
@@ -188,6 +211,9 @@ function _salesforce_sync_import_object_
 		
 		'picklist' 	=> array('field_widget_type' 	=> 'text-options_select',
 												'widget_type' 				=> 'options_select'),
+		
+    'multipicklist' 	=> array('field_widget_type' 	=> 'text-options_select',
+												'widget_type' 				=> 'options_select'),
 												
 		'reference' => false, // not really sure  how to deal with these, or if we even really need to.
 		
@@ -381,6 +419,19 @@ function _salesforce_sync_put_object_dat
 					$values[$sf_field] = $node->{$dp_field}[0]['value'];
 					break;
 			}
+			
+			/**
+			 * Multi-Select Picklists are classified as a text CCK field so we have to find the field to 
+			 * format a different away. Check to see if there is more than one element in the array and 
+			 * concatenate the values in one value separated by a semi-colon
+			 **/
+			 if (count($node->{$dp_field}) > '1') {
+			   $textvalue = array();
+			   foreach ($node->{$dp_field} as $value) {
+			     $textvalue[] = $value['value'];
+			   }
+			   $values[$sf_field] = join(';', $textvalue);
+			 }
 		}
 				
 		if ($id) {
