diff --git a/R/CreateCalibOptions.R b/R/CreateCalibOptions.R
index a28f4c7231e3aa29ea00f7b30177d0e2d7e00480..d002531a40253bbb6d9a30f127fd901c556b82d1 100644
--- a/R/CreateCalibOptions.R
+++ b/R/CreateCalibOptions.R
@@ -50,13 +50,23 @@ CreateCalibOptions.InputsModel <- function(x, FixedParam = NULL, ...) {
     }
   }
   # Add FixedParam
-  dots$FixedParam <- FixedParam
+  if (!is.null(FixedParam) && !any(is.na(FixedParam))) {
+    dots$FixedParam <- NULL
+  } else {
+    dots$FixedParam <- FixedParam
+  }
   # Automatically define IsSD for intermediate basin GR models
   dots$IsSD = !is.null(x$Qupstream) & dots$FUN_MOD != "RunModel_Lag"
   # Add IsHyst in parameters if carried by InputsModel
   if (!is.null(x$model$IsHyst)) dots$IsHyst <- x$model$IsHyst
   # Call airGR function
-  do.call(airGR::CreateCalibOptions, dots)
+  CalibOptions <- do.call(airGR::CreateCalibOptions, dots)
+  # airGR::CreateCalibOptions don't like when there are no param to calibrate
+  # But we need the full set of fixed parameters here for airGRiwrm Calibration
+  if (!is.null(FixedParam) && !any(is.na(FixedParam))) {
+    CalibOptions$FixedParam <- FixedParam
+  }
+  return(CalibOptions)
 }
 
 #' @rdname CreateCalibOptions