diff --git a/field_slideshow.module b/field_slideshow.module
index 4eebc04..d0ff06f 100644
--- a/field_slideshow.module
+++ b/field_slideshow.module
@@ -567,9 +567,17 @@ function field_slideshow_field_formatter_view($entity_type, $entity, $field, $in
   }
   // Field Collection support
   elseif ($field['type'] == 'field_collection') {
+    $i = 0;
     foreach ($items as $delta => $item) {
-      $items[$delta] = (array) field_collection_field_get_entity($item);
-      $items[$delta]['uri'] = $items[$delta][$settings['slideshow_field_collection_image']][$langcode][0]['uri'];
+      $field_collection_entity = (array) field_collection_field_get_entity($item);
+      foreach ($field_collection_entity[$settings['slideshow_field_collection_image']][$langcode] as $field_collection_item) {
+        $items[$i] = $field_collection_entity;
+        $items[$i]['uri'] = $field_collection_item['uri'];
+        if ($settings['slideshow_caption'] != '') {
+          $items[$i]['caption'] = $items[$i][$settings['slideshow_caption']];
+        }
+        $i++;
+      }
     }
   }
 
@@ -578,7 +586,6 @@ function field_slideshow_field_formatter_view($entity_type, $entity, $field, $in
     foreach ($items as $delta => $item) {
       if ($field['type'] == 'media' || $field['type'] == 'field_collection') {
         if ($field['type'] == 'media') $items[$delta]['caption'] = $items[$delta]['file']->$settings['slideshow_caption'];
-        elseif ($field['type'] == 'field_collection') $items[$delta]['caption'] = $items[$delta][$settings['slideshow_caption']];
         if (!empty($items[$delta]['caption']) && isset($items[$delta]['caption'][$langcode]))
           $items[$delta]['caption'] = $items[$delta]['caption'][$langcode][0]['value'];
         else $items[$delta]['caption'] = '';
