diff --git a/mex/sources/bytecode/ErrorHandling.hh b/mex/sources/bytecode/ErrorHandling.hh
index 08a6b4fa5c37953cf961a17a8587027c63063d22..9856b4338c719f3039411c8462397873d4ed4202 100644
--- a/mex/sources/bytecode/ErrorHandling.hh
+++ b/mex/sources/bytecode/ErrorHandling.hh
@@ -358,9 +358,6 @@ public:
     bool go_on = true;
     double ll;
     ExpressionType equation_type = TemporaryTerm;
-    unsigned int equation_num;
-    unsigned int dvar1, dvar2, dvar3;
-    int lag1, lag2, lag3;
     size_t found;
     double *jacob = NULL, *jacob_other_endo = NULL, *jacob_exo = NULL, *jacob_exo_det = NULL;
     external_function_type function_type = ExternalFunctionWithoutDerivative;
@@ -385,107 +382,48 @@ public:
               {
               case TemporaryTerm:
                 equation_type = TemporaryTerm;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
                 break;
               case ModelEquation:
                 equation_type = ModelEquation;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
                 break;
               case FirstEndoDerivative:
                 equation_type = FirstEndoDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                lag1 = ((FNUMEXPR_ *) it_code->second)->get_lag1();
                 break;
               case FirstOtherEndoDerivative:
                 equation_type = FirstOtherEndoDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                lag1 = ((FNUMEXPR_ *) it_code->second)->get_lag1();
                 break;
               case FirstExoDerivative:
                 equation_type = FirstExoDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                lag1 = ((FNUMEXPR_ *) it_code->second)->get_lag1();
                 break;
               case FirstExodetDerivative:
                 equation_type = FirstExodetDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                lag1 = ((FNUMEXPR_ *) it_code->second)->get_lag1();
                 break;
               case FirstParamDerivative:
                 equation_type = FirstParamDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
                 break;
               case SecondEndoDerivative:
                 equation_type = SecondEndoDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                lag1 = ((FNUMEXPR_ *) it_code->second)->get_lag1();
-                dvar2 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
-                lag2 = ((FNUMEXPR_ *) it_code->second)->get_lag2();
                 break;
               case SecondExoDerivative:
                 equation_type = SecondExoDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                lag1 = ((FNUMEXPR_ *) it_code->second)->get_lag1();
-                dvar2 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
-                lag2 = ((FNUMEXPR_ *) it_code->second)->get_lag2();
                 break;
               case SecondExodetDerivative:
                 equation_type = SecondExodetDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                lag1 = ((FNUMEXPR_ *) it_code->second)->get_lag1();
-                dvar2 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
-                lag2 = ((FNUMEXPR_ *) it_code->second)->get_lag2();
                 break;
               case SecondParamDerivative:
                 equation_type = SecondExodetDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                dvar2 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
                 break;
               case ThirdEndoDerivative:
                 equation_type = ThirdEndoDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                lag1 = ((FNUMEXPR_ *) it_code->second)->get_lag1();
-                dvar2 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
-                lag2 = ((FNUMEXPR_ *) it_code->second)->get_lag2();
-                dvar3 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
-                lag3 = ((FNUMEXPR_ *) it_code->second)->get_lag3();
                 break;
               case ThirdExoDerivative:
                 equation_type = ThirdExoDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                lag1 = ((FNUMEXPR_ *) it_code->second)->get_lag1();
-                dvar2 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
-                lag2 = ((FNUMEXPR_ *) it_code->second)->get_lag2();
-                dvar3 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
-                lag3 = ((FNUMEXPR_ *) it_code->second)->get_lag3();
                 break;
               case ThirdExodetDerivative:
                 equation_type = ThirdExodetDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                lag1 = ((FNUMEXPR_ *) it_code->second)->get_lag1();
-                dvar2 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
-                lag2 = ((FNUMEXPR_ *) it_code->second)->get_lag2();
-                dvar3 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
-                lag3 = ((FNUMEXPR_ *) it_code->second)->get_lag3();
                 break;
               case ThirdParamDerivative:
                 equation_type = ThirdExodetDerivative;
-                equation_num = ((FNUMEXPR_ *) it_code->second)->get_equation();
-                dvar1 = ((FNUMEXPR_ *) it_code->second)->get_dvariable1();
-                dvar2 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
-                dvar3 = ((FNUMEXPR_ *) it_code->second)->get_dvariable2();
                 break;
               default:
                 ostringstream tmp;
diff --git a/mex/sources/bytecode/Interpreter.cc b/mex/sources/bytecode/Interpreter.cc
index 10bc8bfe57e1a276c12cf2e2bba1cb33d3f414ff..d8dc69987276d48f8be780e71d25a4a75d02dc03 100644
--- a/mex/sources/bytecode/Interpreter.cc
+++ b/mex/sources/bytecode/Interpreter.cc
@@ -1725,7 +1725,6 @@ Interpreter::simulate_a_block(const int size, const int type, string file_name,
   it_code_type begining;
   int i;
   bool cvg;
-  int giter;
   bool result = true;
   double *y_save;
   res1 = 0;
@@ -2348,7 +2347,6 @@ Interpreter::simulate_a_block(const int size, const int type, string file_name,
       r = (double *) mxMalloc(size*sizeof(double));
       y_save = (double *) mxMalloc(y_size*sizeof(double)*(periods+y_kmax+y_kmin));
       begining = it_code;
-      giter = 0;
       iter = 0;
       if (!is_linear)
         {
diff --git a/mex/sources/bytecode/SparseMatrix.cc b/mex/sources/bytecode/SparseMatrix.cc
index cc8aabe24381e11893f67c44fdf4955f9c9f9bf9..a7cf3769882b27ab9ee1014ac0ef4dc6208a9b39 100644
--- a/mex/sources/bytecode/SparseMatrix.cc
+++ b/mex/sources/bytecode/SparseMatrix.cc
@@ -894,10 +894,8 @@ SparseMatrix::compare(int *save_op, int *save_opa, int *save_opaa, int beg_t, in
   long int i, j, nop = nop4/2, t, k;
   double r = 0.0;
   bool OK = true;
-  clock_t t001;
   t_save_op_s *save_op_s, *save_opa_s, *save_opaa_s;
   int *diff1, *diff2;
-  t001 = clock();
   diff1 = (int *) mxMalloc(nop*sizeof(int));
   diff2 = (int *) mxMalloc(nop*sizeof(int));
   int max_save_ops_first = -1;
@@ -1141,7 +1139,6 @@ SparseMatrix::complete(int beg_t, int Size, int periods, int *b)
     }
   max_var = (periods+y_kmin)*y_size;
   min_var = y_kmin*y_size;
-  int k1 = 0;
   for (t = periods+y_kmin-1; t >= beg_t+y_kmin; t--)
     {
       j = 0;
@@ -1165,7 +1162,6 @@ SparseMatrix::complete(int beg_t, int Size, int periods, int *b)
               break;
             case IFSTP:
               k = save_code[i+1]+ti*diff[j];
-              k1 = k;
               err = yy - y[k];
               y[k] += slowc*(err);
               break;
@@ -1178,7 +1174,7 @@ SparseMatrix::complete(int beg_t, int Size, int periods, int *b)
   return (beg_t);
 }
 
-double
+void
 SparseMatrix::bksub(int tbreak, int last_period, int Size, double slowc_l)
 {
   NonZeroElem *first;
@@ -1214,10 +1210,9 @@ SparseMatrix::bksub(int tbreak, int last_period, int Size, double slowc_l)
           y[eq] += slowc_l*yy;
         }
     }
-  return res1;
 }
 
-double
+void
 SparseMatrix::simple_bksub(int it_, int Size, double slowc_l)
 {
   int i, k;
@@ -1242,7 +1237,6 @@ SparseMatrix::simple_bksub(int it_, int Size, double slowc_l)
       direction[eq+it_*y_size] = yy;
       y[eq+it_*y_size] += slowc_l*yy;
     }
-  return res1;
 }
 
 void
@@ -1797,7 +1791,6 @@ SparseMatrix::Solve_Matlab_Relaxation(mxArray *A_m, mxArray *b_m, unsigned int S
     A3_j[++A3_var] = A3_nze;
   mxArray *d1 = NULL;
   vector<pair<mxArray *, mxArray *> > triangular_form;
-  int last_t = 0;
   double sumc = 0, C_sumc = 1000;
   mxArray *B1_inv = NULL;
   mxArray *B1_inv_t = NULL;
@@ -1815,7 +1808,6 @@ SparseMatrix::Solve_Matlab_Relaxation(mxArray *A_m, mxArray *b_m, unsigned int S
           sumc = 0;
           for (unsigned int i = 0; i < B_inv_nze; i++)
             sumc += fabs(B_inv_d[i]);
-          last_t = t;
         }
       B1_inv_t = Sparse_transpose(B1_inv);
       mxArray *S1 = Sparse_mult_SAT_SB(B1_inv_t, C1);
@@ -2252,7 +2244,6 @@ SparseMatrix::Solve_ByteCode_Sparse_GaussianElimination(int Size, int blck, bool
             }
         }
       double markovitz = 0, markovitz_max = -9e70;
-      int NR_max = 0;
       if (!one)
         {
           for (int j = 0; j < l; j++)
@@ -2277,7 +2268,6 @@ SparseMatrix::Solve_ByteCode_Sparse_GaussianElimination(int Size, int blck, bool
                   pivj = pivj_v[j];   //Line number
                   pivk = pivk_v[j];   //positi
                   markovitz_max = markovitz;
-                  NR_max = NR[j];
                 }
             }
         }
@@ -2305,7 +2295,6 @@ SparseMatrix::Solve_ByteCode_Sparse_GaussianElimination(int Size, int blck, bool
                   pivj = pivj_v[j];   //Line number
                   pivk = pivk_v[j];   //positi
                   markovitz_max = markovitz;
-                  NR_max = NR[j];
                 }
             }
         }
@@ -2411,11 +2400,11 @@ SparseMatrix::Solve_ByteCode_Sparse_GaussianElimination(int Size, int blck, bool
           u[b[row]] -= u[b[pivj]]*first_elem;
         }
     }
-  double slowc_lbx = slowc, res1bx;
+  double slowc_lbx = slowc;
   for (int i = 0; i < y_size; i++)
     ya[i+it_*y_size] = y[i+it_*y_size];
   slowc_save = slowc;
-  res1bx = simple_bksub(it_, Size, slowc_lbx);
+  simple_bksub(it_, Size, slowc_lbx);
   End_GE(Size);
   mxFree(piv_v);
   mxFree(pivj_v);
@@ -2901,11 +2890,11 @@ SparseMatrix::Solve_ByteCode_Symbolic_Sparse_GaussianElimination(int Size, bool
     }
 
   /*The backward substitution*/
-  double slowc_lbx = slowc, res1bx;
+  double slowc_lbx = slowc;
   for (int i = 0; i < y_size*(periods+y_kmin); i++)
     ya[i] = y[i];
   slowc_save = slowc;
-  res1bx = bksub(tbreak, last_period, Size, slowc_lbx);
+  bksub(tbreak, last_period, Size, slowc_lbx);
   End_GE(Size);
 }
 
diff --git a/mex/sources/bytecode/SparseMatrix.hh b/mex/sources/bytecode/SparseMatrix.hh
index 17a3041116166d5e6d1116e2a1cec25e36c198cb..dc7bb3861d28396df2b020cc3f994707f4b1b3f7 100644
--- a/mex/sources/bytecode/SparseMatrix.hh
+++ b/mex/sources/bytecode/SparseMatrix.hh
@@ -104,12 +104,12 @@ private:
   void CheckIt(int y_size, int y_kmin, int y_kmax, int Size, int periods, int iter);
   void Check_the_Solution(int periods, int y_kmin, int y_kmax, int Size, double *u, int *pivot, int *b);
   int complete(int beg_t, int Size, int periods, int *b);
-  double bksub(int tbreak, int last_period, int Size, double slowc_l
+  void bksub(int tbreak, int last_period, int Size, double slowc_l
 #ifdef PROFILER
                , long int *nmul
 #endif
                );
-  double simple_bksub(int it_, int Size, double slowc_l);
+  void simple_bksub(int it_, int Size, double slowc_l);
   mxArray *Sparse_transpose(mxArray *A_m);
   mxArray *Sparse_mult_SAT_SB(mxArray *A_m, mxArray *B_m);
   mxArray *Sparse_mult_SAT_B(mxArray *A_m, mxArray *B_m);
diff --git a/mex/sources/bytecode/bytecode.cc b/mex/sources/bytecode/bytecode.cc
index 134c19f425445ae88b380701fc7f870cafea00e9..b3ff8c1bba45d60359830e194290f23515168dd5 100644
--- a/mex/sources/bytecode/bytecode.cc
+++ b/mex/sources/bytecode/bytecode.cc
@@ -205,7 +205,7 @@ main(int nrhs, const char *prhs[])
 #endif
   //ErrorHandlingException error_handling;
   unsigned int i, row_y = 0, col_y = 0, row_x = 0, col_x = 0, nb_row_xd = 0;
-  unsigned int steady_row_y, steady_col_y, steady_row_x, steady_col_x, steady_nb_row_xd;
+  unsigned int steady_row_y, steady_col_y;
   int y_kmin = 0, y_kmax = 0, y_decal = 0;
   unsigned int periods = 1;
   double *direction;
@@ -265,12 +265,9 @@ main(int nrhs, const char *prhs[])
         {
           steady_yd = mxGetPr(mxGetFieldByNumber(oo_, 0, mxGetFieldNumber(oo_, "steady_state")));
           steady_row_y = mxGetM(mxGetFieldByNumber(oo_, 0, mxGetFieldNumber(oo_, "steady_state")));
-          steady_col_y = mxGetN(mxGetFieldByNumber(oo_, 0, mxGetFieldNumber(oo_, "steady_state")));;  
+          steady_col_y = mxGetN(mxGetFieldByNumber(oo_, 0, mxGetFieldNumber(oo_, "steady_state")));;
         }
       steady_xd = mxGetPr(mxGetFieldByNumber(oo_, 0, mxGetFieldNumber(oo_, "exo_steady_state")));
-      steady_row_x = mxGetM(mxGetFieldByNumber(oo_, 0, mxGetFieldNumber(oo_, "exo_steady_state")));
-      steady_col_x = mxGetN(mxGetFieldByNumber(oo_, 0, mxGetFieldNumber(oo_, "exo_steady_state")));
-      steady_nb_row_xd = steady_row_x;
     }
   else
     {
@@ -342,11 +339,11 @@ main(int nrhs, const char *prhs[])
   mxFree(fname);
   int nb_blocks = 0;
   double *pind;
-  bool result = true, no_error = true;
+  bool no_error = true;
 
   try
     {
-      result = interprete.compute_blocks(f, f, steady_state, evaluate, block, nb_blocks,print_it);
+      interprete.compute_blocks(f, f, steady_state, evaluate, block, nb_blocks,print_it);
     }
   catch (GeneralExceptionHandling &feh)
     {