diff --git a/R/Calibration_Michel.R b/R/Calibration_Michel.R
index 873c0036bfb2e3f452261ba3bcb56f6327d3121c..f46aaf00d56b622d8b38ced5840aaa8f12aa20a5 100644
--- a/R/Calibration_Michel.R
+++ b/R/Calibration_Michel.R
@@ -94,10 +94,11 @@ Calibration_Michel <- function(InputsModel,RunOptions,InputsCrit,CalibOptions,FU
 
 
     ##Creation_of_new_candidates_______________________________________________
+    OptimParam <- is.na(CalibOptions$FixedParam)
     if(PrefilteringType==1){ CandidatesParamR <- CalibOptions$StartParamList; }
-    if(PrefilteringType==2){ DistribParamR <- CalibOptions$StartParamDistrib; DistribParamR[,!CalibOptions$OptimParam] <- NA; CandidatesParamR <- ProposeCandidatesGrid(DistribParamR)$NewCandidates; }
+    if(PrefilteringType==2){ DistribParamR <- CalibOptions$StartParamDistrib; DistribParamR[,!OptimParam] <- NA; CandidatesParamR <- ProposeCandidatesGrid(DistribParamR)$NewCandidates; }
     ##Remplacement_of_non_optimised_values_____________________________________
-    CandidatesParamR <- apply(CandidatesParamR,1,function(x){ x[!CalibOptions$OptimParam] <- CalibOptions$FixedParam[!CalibOptions$OptimParam]; return(x); });
+    CandidatesParamR <- apply(CandidatesParamR,1,function(x){ x[!OptimParam] <- CalibOptions$FixedParam[!OptimParam]; return(x); });
     if(NParam>1){ CandidatesParamR <- t(CandidatesParamR); } else { CandidatesParamR <- cbind(CandidatesParamR); }
 
     ##Loop_to_test_the_various_candidates______________________________________
@@ -214,10 +215,10 @@ Calibration_Michel <- function(InputsModel,RunOptions,InputsCrit,CalibOptions,FU
   
 
     ##Creation_of_new_candidates______________________________________________
-    CandidatesParamT <- ProposeCandidatesLoc(NewParamOptimT,OldParamOptimT,RangesT,CalibOptions$OptimParam,Pace)$NewCandidatesT;
+    CandidatesParamT <- ProposeCandidatesLoc(NewParamOptimT,OldParamOptimT,RangesT,OptimParam,Pace)$NewCandidatesT;
     CandidatesParamR <- FUN_TRANSFO(CandidatesParamT,"TR");
     ##Remplacement_of_non_optimised_values_____________________________________
-    CandidatesParamR <- apply(CandidatesParamR,1,function(x){ x[!CalibOptions$OptimParam] <- CalibOptions$FixedParam[!CalibOptions$OptimParam]; return(x); });
+    CandidatesParamR <- apply(CandidatesParamR,1,function(x){ x[!OptimParam] <- CalibOptions$FixedParam[!OptimParam]; return(x); });
     if(NParam>1){ CandidatesParamR <- t(CandidatesParamR); } else { CandidatesParamR <- cbind(CandidatesParamR); }
 
 
@@ -250,7 +251,7 @@ Calibration_Michel <- function(InputsModel,RunOptions,InputsCrit,CalibOptions,FU
       }
       ##We_update_PaceDiag
       VectPace <- NewParamOptimT-OldParamOptimT;
-      for(iC in 1:NParam){ if(CalibOptions$OptimParam[iC]==TRUE){ 
+      for(iC in 1:NParam){ if(OptimParam[iC]){ 
         if(VectPace[iC]!=0){ PaceDiag[iC] <- CLG*PaceDiag[iC]+(1-CLG)*VectPace[iC]; }
         if(VectPace[iC]==0){ PaceDiag[iC] <- CLG*PaceDiag[iC]; }
       } }
@@ -268,7 +269,7 @@ Calibration_Michel <- function(InputsModel,RunOptions,InputsCrit,CalibOptions,FU
         iNewOptim <- 0; iNew <- 1;
         CandidatesParamT <- NewParamOptimT+PaceDiag;  if(!is.matrix(CandidatesParamT)){ CandidatesParamT <- matrix(CandidatesParamT,nrow=1); }
         ##If_we_exit_the_range_of_possible_values_we_go_back_on_the_boundary
-        for(iC in 1:NParam){ if(CalibOptions$OptimParam[iC]==TRUE){
+        for(iC in 1:NParam){ if(OptimParam[iC]){
           if(CandidatesParamT[iNew,iC]<RangesT[1,iC]){ CandidatesParamT[iNew,iC] <- RangesT[1,iC]; }
           if(CandidatesParamT[iNew,iC]>RangesT[2,iC]){ CandidatesParamT[iNew,iC] <- RangesT[2,iC]; }
         } }