diff --git a/plugins/views_plugin_style.inc b/plugins/views_plugin_style.inc
index 4cdc90e..f47f6b7 100644
--- a/plugins/views_plugin_style.inc
+++ b/plugins/views_plugin_style.inc
@@ -228,6 +228,14 @@ class views_plugin_style extends views_plugin {
               'edit-style-options-grouping-' . $i . '-field' => array_keys($field_labels),
             )
           );
+          $form['grouping'][$i]['limit'] = array(
+            '#type' => 'textfield',
+            '#title' => t('Limit to this many groups at this level. Put 0 for unlimited.'),
+            '#default_value' => $grouping['limit'],
+            '#dependency' => array(
+              'edit-style-options-grouping-' . $i . '-field' => array_keys($field_labels),
+            )
+          );
         }
       }
     }
@@ -331,18 +339,23 @@ class views_plugin_style extends views_plugin {
    */
   function render_grouping_sets($sets, $level = 0) {
     $output = '';
+    $count = 0;
     foreach ($sets as $set) {
       $row = reset($set['rows']);
       // Render as a grouping set.
       if (is_array($row) && isset($row['group'])) {
-        $output .= theme(views_theme_functions('views_view_grouping', $this->view, $this->display),
-          array(
-            'view' => $this->view,
-            'grouping' => $this->options['grouping'][$level],
-            'grouping_level' => $level,
-            'rows' => $set['rows'],
-            'title' => $set['group'])
-        );
+        if($set['limit'] == 0 || $count < $set['limit']){
+          $output .= theme(views_theme_functions('views_view_grouping', $this->view, $this->display),
+            array(
+              'view' => $this->view,
+              'grouping' => $this->options['grouping'][$level],
+              'grouping_level' => $level,
+              'rows' => $set['rows'],
+              'field' => $set['field'],
+              'title' => $set['group'])
+          );
+          $count ++;
+        }
       }
       // Render as a record set.
       else {
@@ -456,6 +469,8 @@ class views_plugin_style extends views_plugin {
           // Create the group if it does not exist yet.
           if (empty($set[$grouping])) {
             $set[$grouping]['group'] = $group_content;
+            $set[$grouping]['field'] = $field;
+            $set[$grouping]['limit'] = isset($info['limit']) ? $info['limit'] : 0;
             $set[$grouping]['rows'] = array();
           }
 
