diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m
index 85844b75bfa5ba671c437adbd47b520659f0c819..9e75c59953b120665b3b534fefdc0e5d32427737 100644
--- a/matlab/global_initialization.m
+++ b/matlab/global_initialization.m
@@ -363,7 +363,7 @@ estimation_info.structural_innovation_corr_prior_index = {};
 estimation_info.structural_innovation_corr_options_index = {};
 estimation_info.structural_innovation_corr.range_index = {};
 estimation_info.joint_parameter_prior_index = {};
-estimation_info.joint_parameter = table(0);
+estimation_info.joint_parameter = {'index','domain','interval','mean','median','mode','shape','shift','stdev','truncate','variance'};
 options_.initial_period = NaN; %dates(1,1);
 options_.dataset.file = [];
 options_.dataset.series = [];
diff --git a/preprocessor/ComputingTasks.cc b/preprocessor/ComputingTasks.cc
index 5194cd7f7a7e460e5172fdf1af3a96632f5d2564..e16d11354e68826d026e3543f940c7afccb37b5a 100644
--- a/preprocessor/ComputingTasks.cc
+++ b/preprocessor/ComputingTasks.cc
@@ -2157,7 +2157,7 @@ JointPriorStatement::writeOutput(ostream &output, const string &basename) const
   writeOutputHelper(output, "truncate", lhs_field);
   writeOutputHelper(output, "variance", lhs_field);
 
-  output << "estimation_info.joint_parameter_tmp = table(key, ..." << endl
+  output << "estimation_info.joint_parameter_tmp = [key, ..." << endl
          << "    " << lhs_field << ".domain , ..." << endl
          << "    " << lhs_field << ".interval , ..." << endl
          << "    " << lhs_field << ".mean , ..." << endl
@@ -2167,15 +2167,9 @@ JointPriorStatement::writeOutput(ostream &output, const string &basename) const
          << "    " << lhs_field << ".shift , ..." << endl
          << "    " << lhs_field << ".stdev , ..." << endl
          << "    " << lhs_field << ".truncate , ..." << endl
-         << "    " << lhs_field << ".variance, ..." << endl
-         << "    'VariableNames',{'index','domain','interval','mean','median','mode','shape','shift','stdev','truncate','variance'});" << endl;
-
-  output << "if rows(estimation_info.joint_parameter)==1 && columns(estimation_info.joint_parameter)==1" << endl
-         << "  estimation_info.joint_parameter = estimation_info.joint_parameter_tmp;" << endl
-         << "else" << endl
-         << "  estimation_info.joint_parameter = [estimation_info.joint_parameter; estimation_info.joint_parameter_tmp];" << endl
-         << "end" << endl
-         << "clear estimation_info.joint_parameter_tmp;" << endl;
+         << "    " << lhs_field << ".variance];" << endl
+         << "estimation_info.joint_parameter = [estimation_info.joint_parameter; estimation_info.joint_parameter_tmp];" << endl
+         << "estimation_info=rmfield(estimation_info, 'joint_parameter_tmp');" << endl;
 }
 
 void
@@ -2183,10 +2177,14 @@ JointPriorStatement::writeOutputHelper(ostream &output, const string &field, con
 {
   OptionsList::num_options_t::const_iterator itn = options_list.num_options.find(field);
   output << lhs_field << "." << field << " = {";
+  if (field=="variance")
+    output << "{";
   if (itn != options_list.num_options.end())
     output << itn->second;
   else
     output << "{}";
+  if (field=="variance")
+    output << "}";
   output << "};" << endl;
 }