diff --git a/matlab/dynare_identification.m b/matlab/dynare_identification.m
index 2d2c42b4898300feac57f61c1cb0ae292a31663c..b4d5502c935f0f564df4efc1f5d070196c5d513f 100644
--- a/matlab/dynare_identification.m
+++ b/matlab/dynare_identification.m
@@ -1,4 +1,4 @@
-function [pdraws, idemodel, idemoments] = dynare_identification()
+function [pdraws, idemodel, idemoments] = dynare_identification(iload)
 
 % main 
 %
@@ -21,6 +21,9 @@ function [pdraws, idemodel, idemoments] = dynare_identification()
 
 global M_ options_ oo_ bayestopt_ estim_params_
 
+if nargin==0 | isempty(iload),
+  iload=0;
+end
 
 options_ = set_default_option(options_,'datafile',[]);
 options_.mode_compute = 0;
@@ -42,9 +45,11 @@ indexo=[];
 if ~isempty(estim_params_.var_exo)
   indexo = estim_params_.var_exo(:,1);
 end
-useautocorr = 0;
+useautocorr = 1;
 nlags = 3;
 
+if iload ==0, 
+  
 iteration = 0;
 loop_indx = 0;
 
@@ -54,11 +59,22 @@ while iteration < SampleSize,
   loop_indx = loop_indx+1;
   params = prior_draw();
   set_all_parameters(params);
+  [A,B,ys,info]=dynare_resolve;
 
-  [JJ, H] = getJJ(M_,oo_,options_,0,indx,indexo,bayestopt_.mf2,nlags,useautocorr);  
   
-  if ~isempty(JJ),
+  if info(1)==0,
     iteration = iteration + 1;
+    tau=[vec(A); vech(B*M_.Sigma_e*B')];
+    [JJ, H, GAM] = getJJ(A, B, M_,oo_,options_,0,indx,indexo,bayestopt_.mf2,nlags,useautocorr);  
+    siJ = abs(JJ(find(GAM),:).*(1./GAM(find(GAM))*params));
+    siH = abs(H(find(abs(tau)>1.e-10),:).*(1./tau(find(abs(tau)>1.e-10))*params));
+    if iteration ==1,
+      siJmean = siJ./SampleSize;
+      siHmean = siH./SampleSize;
+    else
+      siJmean = siJ./SampleSize+siJmean;
+      siHmean = siH./SampleSize+siHmean;
+    end
     pdraws(iteration,:) = params';
     [idemodel.Mco(:,iteration), idemoments.Mco(:,iteration), ...
       idemodel.Pco(:,:,iteration), idemoments.Pco(:,:,iteration), ...
@@ -71,12 +87,51 @@ while iteration < SampleSize,
       waitbar(iteration/SampleSize,h)
   end
 end
+siHmean = siHmean./(max(siHmean')'*ones(size(params)));
+siJmean = siJmean./(max(siJmean')'*ones(size(params)));
 
 close(h)
 
 
-save([IdentifDirectoryName '/' M_.fname '_identif'], 'pdraws', 'idemodel', 'idemoments')
-
+save([IdentifDirectoryName '/' M_.fname '_identif'], 'pdraws', 'idemodel', 'idemoments', 'siHmean', 'siJmean')
+else
+load([IdentifDirectoryName '/' M_.fname '_identif'], 'pdraws', 'idemodel', 'idemoments', 'siHmean', 'siJmean')
+end  
 
 disp_identification(pdraws, idemodel, idemoments)
 
+figure,
+myboxplot(siHmean)
+set(gca,'ylim',[0 1])
+set(gca,'xticklabel','')
+for ip=1:length(params),
+  text(ip,-0.02,bayestopt_.name{ip},'rotation',90,'HorizontalAlignment','right','interpreter','none')
+end
+title('Sensitivity in the model')
+
+figure,
+myboxplot(siJmean)
+set(gca,'ylim',[0 1])
+set(gca,'xticklabel','')
+for ip=1:length(params),
+  text(ip,-0.02,bayestopt_.name{ip},'rotation',90,'HorizontalAlignment','right','interpreter','none')
+end
+title('Sensitivity in the moments')
+
+figure,
+myboxplot(idemodel.Mco')
+set(gca,'ylim',[0 1])
+set(gca,'xticklabel','')
+for ip=1:length(params),
+  text(ip,-0.02,bayestopt_.name{ip},'rotation',90,'HorizontalAlignment','right','interpreter','none')
+end
+title('Multicollinearity in the model')
+
+figure,
+myboxplot(idemoments.Mco')
+set(gca,'ylim',[0 1])
+set(gca,'xticklabel','')
+for ip=1:length(params),
+  text(ip,-0.02,bayestopt_.name{ip},'rotation',90,'HorizontalAlignment','right','interpreter','none')
+end
+title('Multicollinearity in the moments')