diff --git a/tests/testthat/test-RunModel_Ungauged.R b/tests/testthat/test-RunModel_Ungauged.R
index 54b1335a98c8d3bdac22b288b772493e809fdc56..02e4d98399b4b9ff34eed433e8c3313accc3ea1b 100644
--- a/tests/testthat/test-RunModel_Ungauged.R
+++ b/tests/testthat/test-RunModel_Ungauged.R
@@ -54,3 +54,32 @@ test_that("RunModel_Ungauged works with a diversion as donor (#110)", {
   OCdiv <- Calibration(InputsModel, RunOptions, IC, CO)
   expect_equal(OCdiv, OC)
 })
+
+test_that("RunModel_Ungauged works with a diversion as upstream node (#113)", {
+  nodes <- loadSevernNodes()
+  nodes <- nodes[!nodes$id %in% c("54002", "54057"), ]
+  nodes[nodes$id == "54032", c("down", "length")] <- c(NA, NA)
+  nodes$model[nodes$id == "54001"] <- "Ungauged"
+  nodes <- rbind(nodes,
+                 data.frame(id = "54095", down = "54029", length = 30, area = NA, model = "Diversion"))
+  g <- CreateGRiwrm(nodes)
+  Qobs2 <- matrix(0, ncol = 1, nrow = 11536)
+  colnames(Qobs2) <- "54095"
+  e <- setupRunModel(griwrm = g, runRunModel = FALSE, Qobs2 = Qobs2)
+  for(x in ls(e)) assign(x, get(x, e))
+  np <- getAllNodesProperties(griwrm)
+
+  IC <- CreateInputsCrit(
+    InputsModel,
+    FUN_CRIT = ErrorCrit_KGE2,
+    RunOptions = RunOptions,
+    Obs = Qobs[IndPeriod_Run, np$id[np$RunOff & np$calibration == "Gauged"], drop = FALSE],
+    AprioriIds = c("54032" = "54029"),
+    transfo = "sqrt",
+    k = 0.15
+  )
+
+  CO <- CreateCalibOptions(InputsModel)
+  OCdiv <- Calibration(InputsModel, RunOptions, IC, CO)
+  expect_s3_class(OCdiv, "GRiwrmOutputsCalib")
+})