diff --git a/sites/all/modules/contrib/datatables/datatables.module b/sites/all/modules/contrib/datatables/datatables.module
index adea167..08a13dc 100644
--- a/sites/all/modules/contrib/datatables/datatables.module
+++ b/sites/all/modules/contrib/datatables/datatables.module
@@ -34,7 +34,6 @@ function datatables_library() {
     $libraries['datatables'] = array(
       'title' => 'DataTables',
       'website' => 'http://http://datatables.net/',
-      'version' => '1.9',
       'js' => array(
         $lib_path . '/media/js/jquery.dataTables.js' => array(),
         drupal_get_path('module', 'datatables') . '/js/datatables.js' => array(),
@@ -315,6 +314,7 @@ function template_preprocess_datatables_view(&$vars) {
   $datatable_options['bInfo'] = $options['elements']['table_info'];
   $datatable_options['bFilter'] = $options['elements']['search_box'];
   $datatable_options['bStateSave'] = $options['elements']['save_state'];
+  $datatable_options['bMultiFilter'] = $options['elements']['multi_filter'];
 
   $datatable_options['bLengthChange'] = $options['pages']['length_change'];
   $datatable_options['iDisplayLength'] = (int) $options['pages']['display_length'];
diff --git a/sites/all/modules/contrib/datatables/js/datatables.js b/sites/all/modules/contrib/datatables/js/datatables.js
index 5a2453b..d38768c 100644
--- a/sites/all/modules/contrib/datatables/js/datatables.js
+++ b/sites/all/modules/contrib/datatables/js/datatables.js
@@ -24,6 +24,38 @@
 
           var datatable = $(selector).dataTable(settings);
 
+          if (settings.bMultiFilter) {
+            // The code below is taken almost verbatim from the examples at datatables.net
+            // @see http://www.datatables.net/examples/api/multi_filter.html
+
+            // Apply the actual filter to the table.
+            $("tfoot input").keyup(function() {
+              // Filter on the column (the index) of this element.
+              datatable.fnFilter(this.value, $("tfoot input").index(this));
+            });
+
+            // Support functions to provide a little bit of 'user friendlyness' to the textboxes in the footer.
+            var asInitVals = new Array();
+            $("tfoot input").each(function(i) {
+              asInitVals[i] = this.value;
+            });
+
+            $("tfoot input").focus(function() {
+              if (this.className == "search_init") {
+                this.className = "";
+                this.value = "";
+              }
+            });
+
+            $("tfoot input").blur(function(i) {
+              if (this.value == "") {
+                this.className = "search_init";
+                this.value = asInitVals[$("tfoot input").index(this)];
+              }
+            });
+
+          }
+
           if (settings.bExpandable) {
             // Add column headers to table settings.
             var datatables_settings = datatable.fnSettings();
diff --git a/sites/all/modules/contrib/datatables/views/datatables-view.tpl.php b/sites/all/modules/contrib/datatables/views/datatables-view.tpl.php
index 3bdc1be..571ca6b 100644
--- a/sites/all/modules/contrib/datatables/views/datatables-view.tpl.php
+++ b/sites/all/modules/contrib/datatables/views/datatables-view.tpl.php
@@ -37,4 +37,16 @@
       </tr>
     <?php endforeach; ?>
   </tbody>
+  <?php $options = $view->style_plugin->options; ?>
+  <?php if ($options['elements']['multi_filter']): ?>
+    <tfoot>
+      <tr>
+        <?php foreach ($header as $field => $label): ?>
+          <th>
+            <input type="text" name="<?php print $field; ?>" value="<?php print $label; ?>" class="search_init" />
+          </th>
+        <?php endforeach; ?>
+      </tr>
+    </tfoot>
+  <?php endif; ?>
 </table>
diff --git a/sites/all/modules/contrib/datatables/views/datatables_style_plugin.inc b/sites/all/modules/contrib/datatables/views/datatables_style_plugin.inc
index 62828dc..63767e2 100644
--- a/sites/all/modules/contrib/datatables/views/datatables_style_plugin.inc
+++ b/sites/all/modules/contrib/datatables/views/datatables_style_plugin.inc
@@ -24,6 +24,7 @@ class datatables_style_plugin extends views_plugin_style_table {
         'search_box' => TRUE,
         'table_info' => TRUE,
         'save_state' => FALSE,
+        'multi_filter' => FALSE,
       ),
     );
     $options['layout'] = array(
@@ -87,7 +88,13 @@ class datatables_style_plugin extends views_plugin_style_table {
       '#type' => 'checkbox',
       '#title' => t('Save State'),
       '#default_value' => !empty($this->options['elements']['save_state']),
-      '#description' => t("DataTables can use cookies in the end user's web-browser in order to store it's state after each change in drawing. What this means is that if the user were to reload the page, the table should remain exactly as it was (length, filtering, pagination and sorting)"),
+      '#description' => t("DataTables can use cookies in the end user's web-browser in order to store its state after each change in drawing. What this means is that if the user were to reload the page, the table should remain exactly as it was (length, filtering, pagination and sorting)"),
+    );
+    $form['elements']['multi_filter'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Enable multi filter'),
+        '#default_value' => !empty($this->options['elements']['multi_filter']),
+        '#description' => t('The multi filter boxes allow users to dynamically filter each column in the table.  Disabling this option will hide the multi filter boxes from users.'),
     );
     $form['elements']['table_tools'] = array(
       '#type' => 'checkbox',
