diff --git a/theme.inc b/theme.inc
index 9e833ec..6c6e653 100644
--- a/theme.inc
+++ b/theme.inc
@@ -274,6 +274,11 @@ function views_calc_table_total(&$vars, $key, $totals) {
         $query_alias = $field->field_alias;
       }
       $ext_alias = strtolower($calc) . '__' . $query_alias;
+
+      // Limit the length of the alias up to 60 characters, because
+      // stored in $total alias has been truncated in views add_field() function.
+      $ext_alias = strtolower(substr($ext_alias, 0, 60));
+
       if (in_array($field->field, $calc_fields)) {
         $row->{$query_alias} = $totals->{$ext_alias};
       }
diff --git a/views_calc_table.inc b/views_calc_table.inc
index cee86f6..3ce63b2 100644
--- a/views_calc_table.inc
+++ b/views_calc_table.inc
@@ -238,7 +238,7 @@ class views_calc_table extends views_plugin_style_table {
         if ($query_alias == 'unknown') {
           continue;
         }
-        $view->query->add_table($field->table, NULL, NULL, $field->table);
+        $view->query->add_table($field->table, $field->relationship, NULL, $field->table);
         // aggregation functions
         $ext_alias = $calc . '__' . $query_alias;
         
