Index: filefield.migrate.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/migrate_extras/filefield.migrate.inc,v
retrieving revision 1.1
diff -u -p -r1.1 filefield.migrate.inc
--- filefield.migrate.inc	13 Jan 2010 04:04:28 -0000	1.1
+++ filefield.migrate.inc	19 Mar 2010 15:05:58 -0000
@@ -14,19 +14,24 @@ function filefield_migrate_prepare_node(
   module_load_include('inc', 'filefield', 'field_file');
 
   foreach (filefield_migrate_fields_node($node->type) as $source_key => $label) {
-    if (isset($tblinfo->fields[$source_key])) {
+    if (isset($tblinfo->fields[$source_key]) OR isset($node->$source_key)) {
 
-      $source_field = $tblinfo->fields[$source_key]['srcfield'];
-      if (isset($row->$source_field) && $row->$source_field != '') {
-        $source_file = $row->$source_field;
-      }
-      elseif (isset($fields[$source_key]['default_value']) && $fields[$source_key]['default_value'] != '') {
-        $source_file = $fields[$source_key]['default_value'];
-      }
+      if(!isset($node->$source_key)) {
+        $source_field = $tblinfo->fields[$source_key]['srcfield'];
+        if (isset($row->$source_field) && $row->$source_field != '') {
+          $source_files = $row->$source_field;
+        }
+        elseif (isset($fields[$source_key]['default_value']) && $fields[$source_key]['default_value'] != '') {
+          $source_files = $fields[$source_key]['default_value'];
+        }
+        else {
+          continue;
+        }
+      } 
       else {
-        continue;
+        $source_files = $node->$source_key;
       }
-
+      
       $field_name = preg_replace('/_sourcefile$/', '', $source_key);
 
       $field = content_fields($field_name, $tblinfo->desttype);
@@ -36,14 +41,19 @@ function filefield_migrate_prepare_node(
       }
       $files_path = _migrate_widget_files_directory($field);
 
-      if ($file = field_file_save_file($source_file, $validators, $files_path)) {
-        if (!isset($node->$field_name)) {
-          $node->$field_name = array();
-        }
-        array_push($node->$field_name, $file);
+      if (!is_array($source_files)) {
+        $source_files = array($source_files);
       }
-      else {
-        $errors[] = migrate_message(t('File save failed for %file', array('%file' => $source_file)));
+      foreach ($source_files as $source_file) {
+        if ($file = field_file_save_file($source_file, $validators, $files_path)) {
+          if (!isset($node->$field_name)) {
+            $node->$field_name = array();
+          }
+          array_push($node->$field_name, $file);
+        }
+        else {
+          $errors[] = migrate_message(t('File save failed for %file', array('%file' => $source_file)));
+        }
       }
     }
   }
