diff --git a/mappers/date.inc b/mappers/date.inc
index e714a38..6b7635e 100644
--- a/mappers/date.inc
+++ b/mappers/date.inc
@@ -51,15 +51,25 @@ function date_feeds_set_target($source, $entity, $target, $feed_element) {
   list($field_name, $sub_field) = explode(':', $target, 2);
   if (!($feed_element instanceof FeedsDateTimeElement)) {
     if (is_array($feed_element)) {
-      $feed_element = $feed_element[0];
-    }
-    if ($sub_field == 'end') {
-      $feed_element = new FeedsDateTimeElement(NULL, $feed_element);
-    }
+		$i = 0;
+			foreach ($feed_element as $f) {
+			if ($sub_field == 'end') {
+				$new_element = new FeedsDateTimeElement(NULL, $f);
+			}
+			else {
+			$new_element = new FeedsDateTimeElement($f, NULL);
+			}
+			$new_element->buildDateField($entity, $field_name, $i);
+			$i++;
+    }}
     else {
-      $feed_element = new FeedsDateTimeElement($feed_element, NULL);
-    }
+		if ($sub_field == 'end') {
+			$feed_element = new FeedsDateTimeElement(NULL, $feed_element);
+		}
+		else {
+			$feed_element = new FeedsDateTimeElement($feed_element, NULL);
+		}
+	$feed_element->buildDateField($entity, $field_name);
+  }
   }
-  $feed_element->buildDateField($entity, $field_name);
-
 }
diff --git a/plugins/FeedsParser.inc b/plugins/FeedsParser.inc
index 43cf1d7..f6e1edd 100644
--- a/plugins/FeedsParser.inc
+++ b/plugins/FeedsParser.inc
@@ -427,7 +427,7 @@ class FeedsDateTimeElement extends FeedsElement {
    * @param $field_name
    *   The name of the field to build.
    */
-  public function buildDateField($entity, $field_name) {
+  public function buildDateField($entity, $field_name, $fieldnumber=0) {
     $info = field_info_field($field_name);
 
     $oldfield = FeedsDateTimeElement::readDateField($entity, $field_name);
@@ -466,24 +466,24 @@ class FeedsDateTimeElement extends FeedsElement {
       $entity->{$field_name} = array('und' => array());
     }
     if ($use_start) {
-      $entity->{$field_name}['und'][0]['timezone'] = $use_start->getTimezone()->getName();
-      $entity->{$field_name}['und'][0]['offset'] = $use_start->getOffset();
+      $entity->{$field_name}['und'][$fieldnumber]['timezone'] = $use_start->getTimezone()->getName();
+      $entity->{$field_name}['und'][$fieldnumber]['offset'] = $use_start->getOffset();
       $use_start->setTimezone($db_tz);
-      $entity->{$field_name}['und'][0]['date'] = $use_start;
+      $entity->{$field_name}['und'][$fieldnumber]['date'] = $use_start;
       /**
        * @todo the date_type_format line could be simplified based upon a patch
        *   DO issue #259308 could affect this, follow up on at some point.
        *   Without this, all granularity info is lost.
        *   $use_start->format(date_type_format($field['type'], $use_start->granularity));
        */
-      $entity->{$field_name}['und'][0]['value'] = $use_start->format(date_type_format($info['type']));
+      $entity->{$field_name}['und'][$fieldnumber]['value'] = $use_start->format(date_type_format($info['type']));
     }
     if ($use_end) {
       // Don't ever use end to set timezone (for now)
-      $entity->{$field_name}['und'][0]['offset2'] = $use_end->getOffset();
+      $entity->{$field_name}['und'][$fieldnumber]['offset2'] = $use_end->getOffset();
       $use_end->setTimezone($db_tz);
-      $entity->{$field_name}['und'][0]['date2'] = $use_end;
-      $entity->{$field_name}['und'][0]['value2'] = $use_end->format(date_type_format($info['type']));
+      $entity->{$field_name}['und'][$fieldnumber]['date2'] = $use_end;
+      $entity->{$field_name}['und'][$fieldnumber]['value2'] = $use_end->format(date_type_format($info['type']));
     }
   }
 }
