Index: draggableviews_theme.inc
===================================================================
--- draggableviews_theme.inc	(revision 1214)
+++ draggableviews_theme.inc	(working copy)
@@ -288,7 +288,10 @@
   // Keep the already created form elements "in mind". We'll need them later when we theme the view.
   $style_plugin->view->form_elements = &$vars['form']['rows'];
   
-  $vars['view'] = theme($style_plugin->theme_functions(), $style_plugin->view, $style_plugin->options, $style_plugin->view->result, '');
+  $sets = $style_plugin->render_grouping($style_plugin->view->result, $style_plugin->options['grouping']);
+  foreach ($sets as $title => $rows) {
+    $vars['view'] .= theme($style_plugin->theme_functions(), $style_plugin->view, $style_plugin->options, $rows, $title);
+  }
 
   // Don't render the submit form..
   // - if user has no access or
Index: views/draggableviews.views.inc
===================================================================
--- views/draggableviews.views.inc	(revision 1214)
+++ views/draggableviews.views.inc	(working copy)
@@ -24,7 +24,7 @@
         'uses row plugin' => FALSE,
         'uses fields' => TRUE,
         'uses options' => TRUE,
-        'uses grouping' => FALSE,
+        'uses grouping' => TRUE,
         'type' => 'normal',
         'parent' => 'table',
       ),
Index: views/draggableviews_plugin_style_draggabletable.inc
===================================================================
--- views/draggableviews_plugin_style_draggabletable.inc	(revision 1214)
+++ views/draggableviews_plugin_style_draggabletable.inc	(working copy)
@@ -67,10 +67,11 @@
     if ($found) {
       $errors[] = t('Display "@display": Draggableviews: The drag-handles will be attached to the first field. But the currently configured first field will not be shown. Move the currently configured first field to another position or choose <i>Show input fields?</i> on the settings page.', array('@display' => $this->display->display_title));
     }
-
+    
     // Check sort criteria.
-    if (isset($this->options['tabledrag_order']['field']) && $this->options['tabledrag_order']['field'] != 'none') {
+    if ($this->options['draggableviews_sortcheck']['sortcheck'] === 'sortcheck' && isset($this->options['tabledrag_order']['field']) && $this->options['tabledrag_order']['field'] != 'none') {
       $order_field = $fields[$this->options['tabledrag_order']['field']];
+      $grouping_field = $this->options['grouping'];
       // Get the first sort criteria.
       $sort = current($sorts);
       if (strcmp($order_field['table'] . $order_field['field'], $sort['table'] . $sort['field']) != 0 || $sort['order'] == 'DESC') {
@@ -255,6 +256,13 @@
       '#title' => t('Structure'),
       '#default_value' => isset($current['draggableviews_repair']) ? $current['draggableviews_repair'] : array('repair'),
     );
+    $form['draggableviews_sortcheck'] = array(
+      '#type' => 'checkboxes',
+      '#options' => array('sortcheck' => t('Verify sort fields.')),
+      '#description' => t('Uncheck this option if you don\'t want DraggableViews to verify proper sort fields are set. You may need to uncheck this box for grouping to work properly.'),
+      '#title' => t('Sort check'),
+      '#default_value' => isset($current['draggableviews_sortcheck']) ? $current['draggableviews_sortcheck'] : array('sortcheck'),
+    );
 
     if (strcmp($this->view->base_table, 'node') == 0) {
       // Tabledrag types (root/leaf).
Index: draggableviews-view-draggabletable.tpl.php
===================================================================
--- draggableviews-view-draggabletable.tpl.php	(revision 1214)
+++ draggableviews-view-draggabletable.tpl.php	(working copy)
@@ -13,6 +13,9 @@
  * - $tabledrag_tableId: The table id that drupal_add_tabledrag needs
  */
 ?>
+<?php if ($title): ?>
+  <h3><?php print $title; ?></h3>
+<?php endif; ?>
 <table class="<?php print $class; ?>" id="<?php print $tabledrag_table_id; ?>">
   <thead>
     <tr>
