diff --git a/R/RunModel_Routing.R b/R/RunModel_Routing.R
index 461b870d5c2f8077afa99d41c80cbaa801a111a0..1694e3793a32400453da1ad288f8fd6be7d51e50 100644
--- a/R/RunModel_Routing.R
+++ b/R/RunModel_Routing.R
@@ -40,7 +40,7 @@ RunModel_Lag_enhanced <- function(InputsModel, RunOptions, Param, QcontribDown)
     stop("'InputsModel' must be of class 'InputsModel'")
   }
   if (!inherits(InputsModel, "SD")) {
-    stop("'InputsModel' must be of class 'SD'")
+    warning("'InputsModel' may better be of class 'SD'")
   }
   if (!inherits(RunOptions, "RunOptions")) {
     stop("'RunOptions' must be of class 'RunOptions'")
@@ -181,14 +181,16 @@ RunModel_Lag_enhanced <- function(InputsModel, RunOptions, Param, QcontribDown)
   }
 
   if ("StateEnd" %in% RunOptions$Outputs_Sim) {
-    SD <- lapply(seq(NbUpBasins), function(x) {
-      lastTS <- RunOptions$IndPeriod_Run[length(RunOptions$IndPeriod_Run)]
-      InputsModel$Qupstream[(lastTS - floor(PT[x])):lastTS, x]
-    })
-    if (is.null(OutputsModel$StateEnd)) {
-      OutputsModel$StateEnd <- list(SD = SD)
-    } else {
-      OutputsModel$StateEnd$SD <- SD
+    if (NbUpBasins > 0) {
+      SD <- lapply(seq(NbUpBasins), function(x) {
+        lastTS <- RunOptions$IndPeriod_Run[length(RunOptions$IndPeriod_Run)]
+        InputsModel$Qupstream[(lastTS - floor(PT[x])):lastTS, x]
+      })
+      if (is.null(OutputsModel$StateEnd)) {
+        OutputsModel$StateEnd <- list(SD = SD)
+      } else {
+        OutputsModel$StateEnd$SD <- SD
+      }
     }
     # message("StateEnd: ", paste(OutputsModel$StateEnd$SD, collapse = ", "))
   }