diff --git a/theme/views-slideshow-slide-counter.tpl.php b/theme/views-slideshow-slide-counter.tpl.php
index 56de96f..602c1d1 100644
--- a/theme/views-slideshow-slide-counter.tpl.php
+++ b/theme/views-slideshow-slide-counter.tpl.php
@@ -1,3 +1,3 @@
 <div id="views_slideshow_slide_counter_<?php print $variables['vss_id']; ?>" class="<?php print $classes; ?>">
-  <span class="num">1</span> <?php print t('of'); ?> <span class="total"><?php print count($rows); ?></span>
+  <span class="num">1</span> <?php print t('of'); ?> <span class="total"><?php print $rows; ?></span>
 </div>
diff --git a/theme/views_slideshow.theme.inc b/theme/views_slideshow.theme.inc
index c98cd91..3e80a1a 100644
--- a/theme/views_slideshow.theme.inc
+++ b/theme/views_slideshow.theme.inc
@@ -232,10 +232,32 @@ function _views_slideshow_preprocess_views_slideshow_pager_fields(&$vars) {
   // Add our class to the wrapper.
   $vars['classes_array'][] = 'views_slideshow_pager_field';
 
+  $view = $vars['view'];
+  
+  $styles = '';
+  if (isset($view->display_handler->display->display_options['style_options']['views_slideshow_cycle'])) {
+    $styles = $view->display_handler->display->display_options['style_options']['views_slideshow_cycle'];
+  }
+  
+  $styles_default = '';
+  if (isset($view->display['default']->display_options['style_options']['views_slideshow_cycle'])) {
+    $styles_default = $view->display['default']->display_options['style_options']['views_slideshow_cycle'];
+  }
+  // Retrive the number of items per frame
+  if (isset($styles['items_per_slide']) && $styles['items_per_slide'] > 0) {
+    $items_per_slide = $styles['items_per_slide'];
+  }
+  elseif (isset($styles_default['items_per_slide']) && $styles_default['items_per_slide'] > 0) {
+    $items_per_slide = $styles_default['items_per_slide'];
+  }
+  else {
+    $items_per_slide = 1;
+  }
+
   // Render all the fields unless there is only 1 slide and the user specified
   // to hide them when there is only one slide.
   $vars['rendered_field_items'] = '';
-  if (empty($vars['settings']['hide_on_single_slide']) || count($vars['view']->result) > 1) {
+  if (empty($vars['settings']['hide_on_single_slide']) || (count($vars['view']->result) / $items_per_slide) > 1) {
     foreach ($vars['view']->result as $count => $node) {
       $rendered_fields = '';
       foreach ($vars['settings']['views_slideshow_pager_fields_fields'] as $field => $use) {
@@ -243,7 +265,20 @@ function _views_slideshow_preprocess_views_slideshow_pager_fields(&$vars) {
           $rendered_fields .= theme(views_theme_functions('views_slideshow_pager_field_field', $vars['view'], $vars['view']->display[$vars['view']->current_display]), array('view' => $vars['view'], 'field' => $field, 'count' => $count));
         }
       }
-      $vars['rendered_field_items'] .= theme(views_theme_functions('views_slideshow_pager_field_item', $vars['view'], $vars['view']->display[$vars['view']->current_display]), array('vss_id' => $vars['vss_id'], 'item' => $rendered_fields, 'count' => $count, 'location' => $vars['location']));
+
+      if($items_per_slide > 1) {
+        if(!isset($altcount)) { 
+          $altcount = 0;
+        }
+
+        if($count % $items_per_slide == 0) {
+          $vars['rendered_field_items'] .= theme(views_theme_functions('views_slideshow_pager_field_item', $vars['view'], $vars['view']->display[$vars['view']->current_display]), array('vss_id' => $vars['vss_id'], 'item' => $rendered_fields, 'count' => $altcount, 'location' => $vars['location']));
+          $altcount++;
+        }
+      }
+      else {
+        $vars['rendered_field_items'] .= theme(views_theme_functions('views_slideshow_pager_field_item', $vars['view'], $vars['view']->display[$vars['view']->current_display]), array('vss_id' => $vars['vss_id'], 'item' => $rendered_fields, 'count' => $count, 'location' => $vars['location']));
+      }
     }
   }
 }
@@ -277,8 +312,30 @@ function theme_views_slideshow_controls_widget_render($vars) {
 
   drupal_add_js($js_vars, 'setting');
 
+  $view = $vars['view'];
+  
+  $styles = '';
+  if (isset($view->display_handler->display->display_options['style_options']['views_slideshow_cycle'])) {
+    $styles = $view->display_handler->display->display_options['style_options']['views_slideshow_cycle'];
+  }
+  
+  $styles_default = '';
+  if (isset($view->display['default']->display_options['style_options']['views_slideshow_cycle'])) {
+    $styles_default = $view->display['default']->display_options['style_options']['views_slideshow_cycle'];
+  }
+  // Retrive the number of items per frame
+  if (isset($styles['items_per_slide']) && $styles['items_per_slide'] > 0) {
+    $items_per_slide = $styles['items_per_slide'];
+  }
+  elseif (isset($styles_default['items_per_slide']) && $styles_default['items_per_slide'] > 1) {
+    $items_per_slide = $styles_default['items_per_slide'];
+  }
+  else {
+    $items_per_slide = 1;
+  }
+
   $output = '';
-  if (empty($vars['settings']['hide_on_single_slide']) && count($vars['rows']) > 1) {
+  if (empty($vars['settings']['hide_on_single_slide']) || (count($vars['view']->result) / $items_per_slide) > 1) {
     $output = theme(views_theme_functions($vars['settings']['type'], $vars['view'], $vars['view']->display[$vars['view']->current_display]), array('vss_id' => $vars['vss_id'], 'view' => $vars['view'], 'settings' => $vars['settings'], 'location' => $vars['location'], 'rows' => $vars['rows']));
   }
 
@@ -337,7 +394,32 @@ function _views_slideshow_preprocess_views_slideshow_controls_text_next(&$vars)
  * @inggroup themeable
  */
 function theme_views_slideshow_slide_counter_widget_render($vars) {
-  return theme(views_theme_functions('views_slideshow_slide_counter', $vars['view'], $vars['view']->display[$vars['view']->current_display]), array('vss_id' => $vars['vss_id'], 'view' => $vars['view'], 'settings' => $vars['settings'], 'location' => $vars['location'], 'rows' => $vars['rows']));
+  $view = $vars['view'];
+  
+  $styles = '';
+  if (isset($view->display_handler->display->display_options['style_options']['views_slideshow_cycle'])) {
+    $styles = $view->display_handler->display->display_options['style_options']['views_slideshow_cycle'];
+  }
+  
+  $styles_default = '';
+  if (isset($view->display['default']->display_options['style_options']['views_slideshow_cycle'])) {
+    $styles_default = $view->display['default']->display_options['style_options']['views_slideshow_cycle'];
+  }
+  // Retrive the number of items per frame
+  if (isset($styles['items_per_slide']) && $styles['items_per_slide'] > 0) {
+    $items_per_slide = $styles['items_per_slide'];
+  }
+  elseif (isset($styles_default['items_per_slide']) && $styles_default['items_per_slide'] > 1) {
+    $items_per_slide = $styles_default['items_per_slide'];
+  }
+  else {
+    $items_per_slide = 1;
+  }
+
+  $rows = count($vars['view']->result) / $items_per_slide;
+  $rows = ceil($rows);
+
+  return theme(views_theme_functions('views_slideshow_slide_counter', $vars['view'], $vars['view']->display[$vars['view']->current_display]), array('vss_id' => $vars['vss_id'], 'view' => $vars['view'], 'settings' => $vars['settings'], 'location' => $vars['location'], 'rows' => $rows));
 }
 
 /**
