diff --git a/field_slideshow.module b/field_slideshow.module
index fc42801..2db7db9 100644
--- a/field_slideshow.module
+++ b/field_slideshow.module
@@ -15,6 +15,7 @@ function field_slideshow_field_formatter_info() {
       'field types' => array('image', 'imagefield_crop', 'media', 'field_collection'),
       'settings'    => array(
         'slideshow_image_style'               => '',
+        'slideshow_picture_group'            => '',
         'slideshow_link'                      => '',
         'slideshow_colorbox_image_style'      => '',
         'slideshow_colorbox_slideshow'        => '',
@@ -68,6 +69,16 @@ function field_slideshow_field_formatter_settings_form($field, $instance, $view_
     );
   }
 
+  if (module_exists('picture')) {
+    $picture_group_options = array_merge(array('' => 'Do not use Picture module'), picture_get_mapping_options());
+    $element['slideshow_picture_group'] = array(
+      '#title' => t('Picture group'),
+      '#type' => 'select',
+      '#default_value' => $settings['slideshow_picture_group'],
+      '#options' => $picture_group_options,
+    );
+  }
+
   $element['slideshow_image_style'] = array(
     '#title'          => t('Image style'),
     '#type'           => 'select',
@@ -463,6 +474,18 @@ function field_slideshow_field_formatter_settings_summary($field, $instance, $vi
   $summary = array();
 
   $image_styles = image_style_options(FALSE);
+
+  if (module_exists('picture') && isset($settings['slideshow_picture_group']) && $settings['slideshow_picture_group'] != '') {
+    $picture_mapping = picture_mapping_load($settings['slideshow_picture_group']);
+    $breakpoint_group = breakpoints_breakpoint_group_load($picture_mapping->breakpoint_group);
+    if ($breakpoint_group) {
+      $summary[] = t('Picture group: @slideshow_picture_group', array('@slideshow_picture_group' => $breakpoint_group->name));
+    }
+    else {
+      $summary[] = t("Picture group doesn't exists");
+    }
+  }
+
   // Unset possible 'No defined styles' option.
   unset($image_styles['']);
   // Styles could be lost because of enabled/disabled modules that defines
@@ -628,6 +651,13 @@ function field_slideshow_field_formatter_view($entity_type, $entity, $field, $in
     }
   }
 
+  // Picture module support
+  $breakpoints = array();
+  if (isset($settings['slideshow_picture_group']) && !empty($settings['slideshow_picture_group'])) {
+    $mappings = picture_mapping_load($settings['slideshow_picture_group']);
+    $breakpoints = picture_get_mapping_breakpoints($mappings, $settings['slideshow_image_style']);
+  }
+
   // Get correct caption
   if ($settings['slideshow_caption'] != '') {
     foreach ($items as $delta => $item) {
@@ -763,6 +793,7 @@ function field_slideshow_field_formatter_view($entity_type, $entity, $field, $in
       '#pager_position'       => $settings['slideshow_pager_position'],
       '#entity'               => $entity,
       '#slideshow_id'         => $slideshow_count,
+      '#breakpoints'          => $breakpoints,
       '#js_variables'         => array(
         'fx'                   => $settings['slideshow_fx'],
         'speed'                => $settings['slideshow_speed'],
@@ -879,7 +910,7 @@ function template_preprocess_field_slideshow(&$variables) {
   $field_slideshow_zebra = 'odd';
   $variables['slides_max_width'] = 0;
   $variables['slides_max_height'] = 0;
-  $slide_theme = (isset($variables['breakpoints']) && isset($variables['breakpoints']['mapping']) && !empty($variables['breakpoints']['mapping'])) ? 'picture' : 'image_style';
+  $slide_theme = (isset($variables['breakpoints']) && !empty($variables['breakpoints'])) ? 'picture' : 'image_style';
   foreach ($variables['items'] as $num => $item) {
     // Generate classes
     $classes = array('field-slideshow-slide', 'field-slideshow-slide-' . (1+$num));
@@ -905,8 +936,11 @@ function template_preprocess_field_slideshow(&$variables) {
     }
     if (isset($item['title']) && drupal_strlen($item['title']) > 0) $image['title'] = $item['title'];
     if (isset($variables['image_style']) && $variables['image_style'] != '') {
+      if ($slide_theme == 'picture') {
+        $image = array_merge($image, $item);
+        $image['breakpoints'] = $variables['breakpoints'];
+      }
       $image['style_name'] = $variables['image_style'];
-      $image['breakpoints'] = $variables['breakpoints'];
       $variables['items'][$num]['image'] = theme($slide_theme, $image);
     }
     else {
