diff --git a/mappers/date.inc b/mappers/date.inc
index 6f656b5..3a89fc2 100644
--- a/mappers/date.inc
+++ b/mappers/date.inc
@@ -53,20 +53,30 @@ function date_feeds_set_target($node, $target, $feed_element) {
   list($field_name, $sub_field) = split(':', $target);
   if (!($feed_element instanceof FeedsDateTimeElement)) {
     if (is_array($feed_element)) {
-      $feed_element = $feed_element[0];
-    }
-
-    // Empty string means no time - so do not set any!
-    if (!is_numeric($feed_element) && !strtotime($feed_element)) {
-      return ;
-    }
+		$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($node, $field_name, $i);
+			$i++;
+			
+    }}
+	else {
+		// Empty string means no time - so do not set any!
+		if (!is_numeric($feed_element) && !strtotime($feed_element)) {
+		  return ;
+		}
 
-    if ($sub_field == 'end') {
-      $feed_element = new FeedsDateTimeElement(NULL, $feed_element);
-    }
-    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($node, $field_name);
-}
+}}}
diff --git a/plugins/FeedsHTTPFetcher.inc b/plugins/FeedsHTTPFetcher.inc
diff --git a/plugins/FeedsParser.inc b/plugins/FeedsParser.inc
index 421c51e..0b994aa 100644
--- a/plugins/FeedsParser.inc
+++ b/plugins/FeedsParser.inc
@@ -383,7 +383,7 @@ class FeedsDateTimeElement extends FeedsElement {
    * @param $field_name
    *   The name of the field to build.
    */
-  public function buildDateField($node, $field_name) {
+  public function buildDateField($node, $field_name, $fieldnumber=0) {
     $field = content_fields($field_name);
     $oldfield = FeedsDateTimeElement::readDateField($node, $field_name);
     // Merge with any preexisting objects on the field; we take precedence.
@@ -421,24 +421,24 @@ class FeedsDateTimeElement extends FeedsElement {
       $node->{$field_name} = array();
     }
     if ($use_start) {
-      $node->{$field_name}[0]['timezone'] = $use_start->getTimezone()->getName();
-      $node->{$field_name}[0]['offset'] = $use_start->getOffset();
+      $node->{$field_name}[$fieldnumber]['timezone'] = $use_start->getTimezone()->getName();
+      $node->{$field_name}[$fieldnumber]['offset'] = $use_start->getOffset();
       $use_start->setTimezone($db_tz);
-      $node->{$field_name}[0]['date'] = $use_start;
+      $node->{$field_name}[$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));
        */
-      $node->{$field_name}[0]['value'] = $use_start->format(date_type_format($field['type']));
+      $node->{$field_name}[$fieldnumber]['value'] = $use_start->format(date_type_format($field['type']));
     }
     if ($use_end) {
       // Don't ever use end to set timezone (for now)
-      $node->{$field_name}[0]['offset2'] = $use_end->getOffset();
+      $node->{$field_name}[$fieldnumber]['offset2'] = $use_end->getOffset();
       $use_end->setTimezone($db_tz);
-      $node->{$field_name}[0]['date2'] = $use_end;
-      $node->{$field_name}[0]['value2'] = $use_end->format(date_type_format($field['type']));
+      $node->{$field_name}[$fieldnumber]['date2'] = $use_end;
+      $node->{$field_name}[$fieldnumber]['value2'] = $use_end->format(date_type_format($field['type']));
     }
   }
 }
