diff --git a/sites/all/modules/contrib/views_calc/theme.inc b/sites/all/modules/contrib/views_calc/theme.inc
index 6216549..adc9d03 100644
--- a/sites/all/modules/contrib/views_calc/theme.inc
+++ b/sites/all/modules/contrib/views_calc/theme.inc
@@ -85,6 +85,9 @@ function theme_views_calc_ui_table($variables) {
  */
 function template_preprocess_views_calc_table(&$vars) {
   $view = $vars['view'];
+  if (!isset($view->row_index)) {
+    $view->row_index = '';
+  }
   if (!empty($view->views_calc_calculation)) {
     $vars['rows'] = array();
     return;
@@ -255,8 +258,20 @@ function views_calc_table_total(&$vars, $key, $totals) {
     else {
       $query_alias = $field->field_alias;
     }
-    $baserow->{$query_alias} = $totals->{$query_alias};
+    if (isset($totals->{$query_alias})) {
+      $baserow->{$query_alias} = $totals->{$query_alias};
+    }
+    else {
+      // Find which key in $totals is closest to the current.
+      $baserow->{$query_alias} = '';
+      foreach ($totals as $k => $v) {
+        if (strpos($k, $query_alias) !== FALSE) {
+          $baserow->{$query_alias} = $totals->$k;
+        }
+      }
+    }
   }
+
   // Build aggregation rows, one per function.
   foreach ($view->views_calc_fields as $calc => $calc_fields) {
     // Rebuild row as if it where single queries.
@@ -269,8 +284,8 @@ function views_calc_table_total(&$vars, $key, $totals) {
       else {
         $query_alias = $field->field_alias;
       }
-      $ext_alias = strtolower($calc) . '__' . $query_alias;
-      if (in_array($field->field, $calc_fields)) {
+      $ext_alias = strtolower($calc) . '__' . str_replace("_type", "", $query_alias);
+      if (in_array($field->field, $calc_fields) && isset($totals->{$ext_alias})) {
         $row->{$query_alias} = $totals->{$ext_alias};
       }
     }
@@ -308,7 +323,7 @@ function views_calc_table_total(&$vars, $key, $totals) {
             // and in ->options for other fields that are based on the numeric field handler.
             if (isset($fields[$field]->field_info)) {
               $separator = !empty($fields[$field]->options['settings']['thousands_separator']) ? $fields[$field]->options['settings']['thousands_separator'] : $options['separator'];
-              $$decimal = !empty($fields[$field]->options['settings']['decimal_separator']) ? $fields[$field]->options['settings']['decimal_separator'] : $options['decimal'];
+              $decimal = !empty($fields[$field]->options['settings']['decimal_separator']) ? $fields[$field]->options['settings']['decimal_separator'] : $options['decimal'];
               $precision = !empty($fields[$field]->options['settings']['scale']) ? $fields[$field]->options['settings']['scale'] : $options['precision'];
             }
             else {
diff --git a/sites/all/modules/contrib/views_calc/views_calc_table.inc b/sites/all/modules/contrib/views_calc/views_calc_table.inc
index 959cef8..7a9e183 100644
--- a/sites/all/modules/contrib/views_calc/views_calc_table.inc
+++ b/sites/all/modules/contrib/views_calc/views_calc_table.inc
@@ -183,6 +183,11 @@ class views_calc_table extends views_plugin_style_table {
     // Execute and render the view in preview mode. Note that we only store
     // the result if the executed view query returns any result.
     $summary_view->pre_execute($this->view->args);
+
+    // We only want the aggregate fields. Ignore all others.
+    $summary_view->field = array();
+    $summary_view->sort = array();
+
     // All results of the calculation queries are used, so we don't page them.
     // Else we will loose the global pager from the page view.
     $summary_view->set_items_per_page(0);
