diff --git a/R/CreateInputsModel.GRiwrm.R b/R/CreateInputsModel.GRiwrm.R
index 6eb5dfbeda12ef3f73817b732d5782bcc268f6b7..557ae31009ebe931e61a1c94609bc9bb413625ec 100644
--- a/R/CreateInputsModel.GRiwrm.R
+++ b/R/CreateInputsModel.GRiwrm.R
@@ -263,6 +263,15 @@ CreateOneGRiwrmInputsModel <- function(id, griwrm, ..., Qobs, Qmin) {
   if(length(UpstreamNodeRows) > 0) {
     # Sub-basin with hydraulic routing
     Qupstream <- as.matrix(Qobs[ , griwrm$id[UpstreamNodeRows], drop=FALSE])
+    upstreamDiversion <- which(
+      sapply(griwrm$id[UpstreamNodeRows],
+             function(id) {
+               getNodeProperties(id, griwrm)$Diversion
+             })
+    )
+    if (length(upstreamDiversion) > 0) {
+      Qupstream[, upstreamDiversion] <- - Qupstream[, upstreamDiversion]
+    }
     LengthHydro <- griwrm$length[UpstreamNodeRows]
     names(LengthHydro) <- griwrm$id[UpstreamNodeRows]
     BasinAreas <- c(