diff --git a/R/RunModel.Supervisor.R b/R/RunModel.Supervisor.R
index 41b2dc1c0fa5588991dcb9a3c10ab853cc7a339a..d6b20474312aa148cae6f8e64e17c3cbf3bee9e1 100644
--- a/R/RunModel.Supervisor.R
+++ b/R/RunModel.Supervisor.R
@@ -65,7 +65,7 @@ RunModel.Supervisor <- function(x, RunOptions, Param, ...) {
   )
 
   # Adapt RunOptions to step by step simulation and copy states
-  SD_Ids <- getSD_Ids(x$InputsModel)
+  SD_Ids <- getSD_Ids(x$InputsModel, add_diversions = TRUE)
   names(SD_Ids) <- SD_Ids
   for(id in SD_Ids) {
     RunOptions[[id]]$IndPeriod_WarmUp <- 0L
@@ -102,7 +102,7 @@ RunModel.Supervisor <- function(x, RunOptions, Param, ...) {
       doSupervision(x)
     }
     # Loop over sub-basin using SD model
-    for(id in getSD_Ids(x$InputsModel, add_diversion = TRUE)) {
+    for(id in SD_Ids) {
       # Run model for the sub-basin and one time step
       RunOptions[[id]]$IniStates <- serializeIniStates(x$OutputsModel[[id]]$StateEnd)
       RunOptions[[id]]$IndPeriod_Run <- iTS
@@ -136,7 +136,7 @@ RunModel.Supervisor <- function(x, RunOptions, Param, ...) {
 
   message(" 100%")
 
-  for(id in getSD_Ids(x$InputsModel)) {
+  for(id in SD_Ids) {
     x$OutputsModel[[id]]$DatesR <- x$DatesR[IndPeriod_Run]
     for (outputVar in outputVars[[id]]) {
       x$OutputsModel[[id]][[outputVar]] <- x$storedOutputs[[outputVar]][, id]
diff --git a/R/utils.GRiwrm.R b/R/utils.GRiwrm.R
index b0dd87001de5bde145b7c3ed694a0e0accb9b39c..d7395253a8a5d55c6e5708fef9922308c0457cec 100644
--- a/R/utils.GRiwrm.R
+++ b/R/utils.GRiwrm.R
@@ -1,16 +1,16 @@
 #' Function to obtain the ID of sub-basins using SD model
 #'
 #' @param InputsModel \[`GRiwrmInputsModel` object\]
-#' @param add_diversion [logical] for adding upstream nodes with diversion
+#' @param add_diversions [logical] for adding upstream nodes with diversion
 #'
 #' @return [character] IDs of the sub-basins using SD model
 #' @export
-getSD_Ids <- function(InputsModel, add_diversion = FALSE) {
+getSD_Ids <- function(InputsModel, add_diversions = FALSE) {
   if (!inherits(InputsModel, "GRiwrmInputsModel")) {
     stop("Argument `InputsModel` should be of class GRiwrmInputsModel")
   }
   bSDs <- sapply(InputsModel, function (IM) {
-    inherits(IM, "SD") | IM$hasDiversion
+    inherits(IM, "SD") || (add_diversions & IM$hasDiversion)
   })
   names(InputsModel)[bSDs]
 }
diff --git a/man/getSD_Ids.Rd b/man/getSD_Ids.Rd
index 3c6523663daea8a0bed68269ef91806e47aedd8c..307625a611b5b9d4ebbf40b9422ad5c8502a2648 100644
--- a/man/getSD_Ids.Rd
+++ b/man/getSD_Ids.Rd
@@ -4,12 +4,12 @@
 \alias{getSD_Ids}
 \title{Function to obtain the ID of sub-basins using SD model}
 \usage{
-getSD_Ids(InputsModel, add_diversion = FALSE)
+getSD_Ids(InputsModel, add_diversions = FALSE)
 }
 \arguments{
 \item{InputsModel}{[\code{GRiwrmInputsModel} object]}
 
-\item{add_diversion}{\link{logical} for adding upstream nodes with diversion}
+\item{add_diversions}{\link{logical} for adding upstream nodes with diversion}
 }
 \value{
 \link{character} IDs of the sub-basins using SD model