diff --git a/modules/30_biomass/magpie_40/bounds.gms b/modules/30_biomass/magpie_40/bounds.gms
index b64fdf33713d8aeb11e212a03d9ade2ae70c2ef5..c33ee7327014e6b36410dcf4d781e4ff1a8b636d 100644
--- a/modules/30_biomass/magpie_40/bounds.gms
+++ b/modules/30_biomass/magpie_40/bounds.gms
@@ -9,12 +9,6 @@
 *** Bounds on pedem
 *** -------------------------------------------------------------
 
-*** To prevent RUS and MEA from demanding high amounts of biomass 
-*** just because of their capacity to store negative emissions a
-*** general rule for all regions is applied that limits the PE 
-*** demand of BECCS technologies in policy runs to 30% of the total 
-*** PE of the baseline scenario (see q30_limitTeBio)
-
 *** -------------------------------------------------------------
 *** Bounds on 1st generation biomass annual production
 *** -------------------------------------------------------------
diff --git a/modules/30_biomass/magpie_40/datainput.gms b/modules/30_biomass/magpie_40/datainput.gms
index cedf619ae452f78c7215d3aea8638ad19c50c55d..f8a0534357b11b4a3afaabd34c65408681aefa50 100644
--- a/modules/30_biomass/magpie_40/datainput.gms
+++ b/modules/30_biomass/magpie_40/datainput.gms
@@ -89,36 +89,35 @@ display i30_bioen_price_a, i30_bioen_price_b;
 *** Bounds on pedem
 *** -------------------------------------------------------------
 
-*** To prevent regions with large carbon sequestration potentials
-*** from demanding high amounts of biomass with CCS to generate
-*** negative emissions rather than requiring it for energy production
-*** this general rule for all regions is applied that limits the PE 
+*** To prevent RUS and MEA from demanding high amounts of biomass 
+*** just because of their capacity to store negative emissions a
+*** general rule for all regions is applied that limits the PE 
 *** demand of BECCS technologies in policy runs to 30% of the total 
 *** PE of the baseline scenario (see q30_limitTeBio)
 
-if(cm_emiscen ne 1,
-Execute_Loadpoint 'input_ref' v30_pedem_BAU=vm_demPe;
-Execute_Loadpoint 'input_ref' v30_seprod_BAU=vm_prodSe;
-
-p30_pedem_BAU(ttot,regi) =
-  sum(pe2se(enty,enty2,te)$(sameas(enty,"peoil") OR sameas(enty,"pecoal") OR sameas(enty,"pegas") OR sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
-    v30_pedem_BAU.l(ttot,regi,enty,enty2,te)
-  ) 
-  + sum(entySe,
-      sum(te,
-          v30_seprod_BAU.l(ttot,regi,"pegeo",entySe,te)
-        + v30_seprod_BAU.l(ttot,regi,"pehyd",entySe,te)
-        + v30_seprod_BAU.l(ttot,regi,"pewin",entySe,te)
-        + v30_seprod_BAU.l(ttot,regi,"pesol",entySe,te)
-        + v30_seprod_BAU.l(ttot,regi,"peur",entySe,te)
-      )
-    ) * 100/40  !!! substitution method
-;
-
-p30_pedemBio_BAU(ttot,regi) =
-  sum(pe2se(enty,enty2,te)$(sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
-    v30_pedem_BAU.l(ttot,regi,enty,enty2,te)
-  );
-);
+***if(cm_emiscen ne 1,
+***Execute_Loadpoint 'input_ref' v30_pedem_BAU=vm_demPe;
+***Execute_Loadpoint 'input_ref' v30_seprod_BAU=vm_prodSe;
+***
+***p30_pedem_BAU(ttot,regi) =
+***  sum(pe2se(enty,enty2,te)$(sameas(enty,"peoil") OR sameas(enty,"pecoal") OR sameas(enty,"pegas") OR sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
+***    v30_pedem_BAU.l(ttot,regi,enty,enty2,te)
+***  ) 
+***  + sum(entySe,
+***      sum(te,
+***          v30_seprod_BAU.l(ttot,regi,"pegeo",entySe,te)
+***        + v30_seprod_BAU.l(ttot,regi,"pehyd",entySe,te)
+***        + v30_seprod_BAU.l(ttot,regi,"pewin",entySe,te)
+***        + v30_seprod_BAU.l(ttot,regi,"pesol",entySe,te)
+***        + v30_seprod_BAU.l(ttot,regi,"peur",entySe,te)
+***      )
+***    ) * 100/40  !!! substitution method
+***;
+***
+***p30_pedemBio_BAU(ttot,regi) =
+***  sum(pe2se(enty,enty2,te)$(sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
+***    v30_pedem_BAU.l(ttot,regi,enty,enty2,te)
+***  );
+***);
 
 *** EOF ./modules/30_biomass/magpie_40/datainput.gms
diff --git a/modules/30_biomass/magpie_40/declarations.gms b/modules/30_biomass/magpie_40/declarations.gms
index fa4ac1039da906a0ce312a88576b0898074b90ed..8d1153a8c316c7dde709752796b4797cb8810b12 100644
--- a/modules/30_biomass/magpie_40/declarations.gms
+++ b/modules/30_biomass/magpie_40/declarations.gms
@@ -20,8 +20,8 @@ p30_max200_path(tall)                           "Time path of global maximal peb
 p30_maxprod_residue(ttot,all_regi)              "Maximal potential of residues enhanced by demand of biotr [TWa]"
 p30_pebiolc_pricemag(tall,all_regi)             "Prices for lignocellulosic purpose grown bioenergy from MAgPIE [T$US/TWa]"
 p30_pebiolc_demandmag(tall,all_regi)            "Production of lignocellulosic purpose grown bioenergy from MAgPIE [TWa]"
-p30_pedem_BAU(ttot,all_regi)                    "Primary energy demand imported from reference gdx [TWa]"
-p30_pedemBio_BAU(ttot,all_regi)                 "Primary bioenergy demand imported from reference gdx [TWa]"
+p30_demPe(ttot,all_regi)                        "Primary energy demand imported from gdx or previous iteration [TWa]"
+***p30_pedemBio_BAU(ttot,all_regi)                 "Primary bioenergy demand imported from reference gdx [TWa]"
 
 
 *** Shift factor calculation
@@ -52,8 +52,8 @@ Positive variable
 v30_priceshift(ttot,all_regi)      "Regional translation factor that shifts emulator prices to better fit actual MAgPIE prices [-]"
 v30_pricemult(ttot,all_regi)       "Regional multiplication factor that sclaes emulator prices to better fit actual MAgPIE prices [-]"
 v30_multcost(ttot,all_regi)        "Cost markup factor for deviations from demand of last coupling iteration [-]"
-v30_pedem_BAU(tall,all_regi,all_enty,all_enty,all_te)    "Primary energy demand imported from refernce gdx [TWa]"
-v30_seprod_BAU(tall,all_regi,all_enty,all_enty,all_te)   "Secondary energy production imported from reference gdx [TWa]"
+***v30_pedem_BAU(tall,all_regi,all_enty,all_enty,all_te)    "Primary energy demand imported from refernce gdx [TWa]"
+***v30_seprod_BAU(tall,all_regi,all_enty,all_enty,all_te)   "Secondary energy production imported from reference gdx [TWa]"
 
 ;
 
diff --git a/modules/30_biomass/magpie_40/equations.gms b/modules/30_biomass/magpie_40/equations.gms
index a26224049e6e74b39ea769d5640d8b3dda88fc81..4687b7eb6623765202d9563f67ac4a39a73e59f3 100644
--- a/modules/30_biomass/magpie_40/equations.gms
+++ b/modules/30_biomass/magpie_40/equations.gms
@@ -113,7 +113,7 @@ q30_limitXpBio(t,regi)..
 q30_limitTeBio(t,regi)$(cm_emiscen ne 1)..
         sum(pe2se(enty,enty2,teBio)$(teCCS(teBio)), vm_demPe(t,regi,enty,enty2,teBio))
         =l=
-        max (0.35 * p30_pedem_BAU(t,regi), 1.30 * p30_pedemBio_BAU(t,regi));
+        0.5 * p30_demPe(t,regi);
          
 		 
 *** EOF ./modules/30_biomass/magpie_4/equations.gms
diff --git a/modules/30_biomass/magpie_40/postsolve.gms b/modules/30_biomass/magpie_40/postsolve.gms
new file mode 100644
index 0000000000000000000000000000000000000000..1032673b825f4f2a59cd4388f191e2de11c713af
--- /dev/null
+++ b/modules/30_biomass/magpie_40/postsolve.gms
@@ -0,0 +1,25 @@
+*** |  (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK)
+*** |  authors, and contributors see CITATION.cff file. This file is part
+*** |  of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of
+*** |  AGPL-3.0, you are granted additional permissions described in the
+*** |  REMIND License Exception, version 1.0 (see LICENSE file).
+*** |  Contact: remind@pik-potsdam.de
+
+*** SOF ./modules/30_biomass/magpie_40/postsolve.gm
+
+p30_demPe(ttot,regi) =
+  sum(pe2se(enty,enty2,te)$(sameas(enty,"peoil") OR sameas(enty,"pecoal") OR sameas(enty,"pegas") OR sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
+    vm_demPe.l(ttot,regi,enty,enty2,te)
+  ) 
+  + sum(entySe,
+      sum(te,
+          vm_prodSe.l(ttot,regi,"pegeo",entySe,te)
+        + vm_prodSe.l(ttot,regi,"pehyd",entySe,te)
+        + vm_prodSe.l(ttot,regi,"pewin",entySe,te)
+        + vm_prodSe.l(ttot,regi,"pesol",entySe,te)
+        + vm_prodSe.l(ttot,regi,"peur",entySe,te)
+      )
+    ) * 100/40  !!! substitution method
+;
+
+*** EOF ./modules/30_biomass/magpie_40/postsolve.gms
diff --git a/modules/30_biomass/magpie_40/presolve.gms b/modules/30_biomass/magpie_40/presolve.gms
new file mode 100644
index 0000000000000000000000000000000000000000..4a8ccf0d73b1f993826a2987524ebfae15debdd2
--- /dev/null
+++ b/modules/30_biomass/magpie_40/presolve.gms
@@ -0,0 +1,28 @@
+*** |  (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK)
+*** |  authors, and contributors see CITATION.cff file. This file is part
+*** |  of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of
+*** |  AGPL-3.0, you are granted additional permissions described in the
+*** |  REMIND License Exception, version 1.0 (see LICENSE file).
+*** |  Contact: remind@pik-potsdam.de
+
+*** SOF ./modules/30_biomass/magpie_40/presolve.gms
+
+*** save level value of all taxes
+
+p30_demPe(ttot,regi) =
+  sum(pe2se(enty,enty2,te)$(sameas(enty,"peoil") OR sameas(enty,"pecoal") OR sameas(enty,"pegas") OR sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
+    vm_demPe.l(ttot,regi,enty,enty2,te)
+  ) 
+  + sum(entySe,
+      sum(te,
+          vm_prodSe.l(ttot,regi,"pegeo",entySe,te)
+        + vm_prodSe.l(ttot,regi,"pehyd",entySe,te)
+        + vm_prodSe.l(ttot,regi,"pewin",entySe,te)
+        + vm_prodSe.l(ttot,regi,"pesol",entySe,te)
+        + vm_prodSe.l(ttot,regi,"peur",entySe,te)
+      )
+    ) * 100/40  !!! substitution method
+;
+
+
+*** EOF ./modules/30_biomass/magpie_40/presolve.gms
diff --git a/modules/30_biomass/magpie_40/realization.gms b/modules/30_biomass/magpie_40/realization.gms
index 67b8c489d50dc4e781a6483853975394aea3dd5b..450aa7c75448bd0c315da8694685293de583d507 100644
--- a/modules/30_biomass/magpie_40/realization.gms
+++ b/modules/30_biomass/magpie_40/realization.gms
@@ -17,6 +17,8 @@ $Ifi "%phase%" == "datainput" $include "./modules/30_biomass/magpie_40/datainput
 $Ifi "%phase%" == "equations" $include "./modules/30_biomass/magpie_40/equations.gms"
 $Ifi "%phase%" == "preloop" $include "./modules/30_biomass/magpie_40/preloop.gms"
 $Ifi "%phase%" == "bounds" $include "./modules/30_biomass/magpie_40/bounds.gms"
+$Ifi "%phase%" == "presolve" $include "./modules/30_biomass/magpie_40/presolve.gms"
+$Ifi "%phase%" == "postsolve" $include "./modules/30_biomass/magpie_40/postsolve.gms"
 $Ifi "%phase%" == "output" $include "./modules/30_biomass/magpie_40/output.gms"
 *######################## R SECTION END (PHASES) ###############################
 *** EOF ./modules/30_biomass/magpie_linear.gms
diff --git a/scripts/output/comparison/compareScenarios.R b/scripts/output/comparison/compareScenarios.R
index 6d484c02b90b19ed82d482f5dc638cb8ed5b497a..887f5d64c91b3b86365c5cf60024ec951a399b31 100644
--- a/scripts/output/comparison/compareScenarios.R
+++ b/scripts/output/comparison/compareScenarios.R
@@ -15,16 +15,16 @@ if (exists("outputdirs")) {
 } else {
   # This is the case if this script was called directly via Rscript
   listofruns <- list( 
-      #list(period = "both",  set = "cpl-Base",       dirs = c("C_SDP-Base-rem-5",       "C_SSP1-Base-rem-5",       "C_SSP2-Base-rem-5",       "C_SSP5-Base-rem-5")),
-      #list(period = "both",  set = "cpl-PkBudg900",  dirs = c("C_SDP-PkBudg900-rem-5",  "C_SSP1-PkBudg900-rem-5",  "C_SSP2-PkBudg900-rem-5",  "C_SSP5-PkBudg900-rem-5")),
-      #list(period = "both",  set = "cpl-PkBudg1100", dirs = c("C_SDP-PkBudg1100-rem-5", "C_SSP1-PkBudg1100-rem-5", "C_SSP2-PkBudg1100-rem-5", "C_SSP5-PkBudg1100-rem-5")),
-      #list(period = "both",  set = "cpl-PkBudg1300", dirs = c("C_SDP-PkBudg1300-rem-5", "C_SSP1-PkBudg1300-rem-5", "C_SSP2-PkBudg1300-rem-5", "C_SSP5-PkBudg1300-rem-5")),
-      #list(period = "both",  set = "cpl-NPi",        dirs = c("C_SDP-NPi-rem-5",        "C_SSP1-NPi-rem-5",        "C_SSP2-NPi-rem-5",        "C_SSP5-NPi-rem-5")),
+      list(period = "both",  set = "cpl-Base",       dirs = c("C_SDP-Base-rem-5",       "C_SSP1-Base-rem-5",       "C_SSP2-Base-rem-5",       "C_SSP5-Base-rem-5")),
+      list(period = "both",  set = "cpl-PkBudg900",  dirs = c("C_SDP-PkBudg900-rem-5",  "C_SSP1-PkBudg900-rem-5",  "C_SSP2-PkBudg900-rem-5",  "C_SSP5-PkBudg900-rem-5")),
+      list(period = "both",  set = "cpl-PkBudg1100", dirs = c("C_SDP-PkBudg1100-rem-5", "C_SSP1-PkBudg1100-rem-5", "C_SSP2-PkBudg1100-rem-5", "C_SSP5-PkBudg1100-rem-5")),
+      list(period = "both",  set = "cpl-PkBudg1300", dirs = c("C_SDP-PkBudg1300-rem-5", "C_SSP1-PkBudg1300-rem-5", "C_SSP2-PkBudg1300-rem-5", "C_SSP5-PkBudg1300-rem-5")),
+      list(period = "both",  set = "cpl-NPi",        dirs = c("C_SDP-NPi-rem-5",        "C_SSP1-NPi-rem-5",        "C_SSP2-NPi-rem-5",        "C_SSP5-NPi-rem-5")),
       
-      #list(period = "both",  set = "cpl-SDP",  dirs = c("C_SDP-Base-rem-5",  "C_SDP-NPi-rem-5",  "C_SDP-PkBudg1300-rem-5",  "C_SDP-PkBudg1100-rem-5",  "C_SDP-PkBudg1000-rem-5")),
-      #list(period = "both",  set = "cpl-SSP1", dirs = c("C_SSP1-Base-rem-5", "C_SSP1-NPi-rem-5", "C_SSP1-PkBudg1300-rem-5", "C_SSP1-PkBudg1100-rem-5", "C_SSP1-PkBudg900-rem-5")),
-      list(period = "both",  set = "cpl-SSP2", dirs = c("C_SSP2-Base-rem-5", "C_SSP2-NPi-rem-5", "C_SSP2-PkBudg1300-rem-5", "C_SSP2-PkBudg1100-rem-5", "C_SSP2-PkBudg900-rem-5")), #, "C_SSP2-NDC-rem-5"
-      #list(period = "both",  set = "cpl-SSP5", dirs = c("C_SSP5-Base-rem-5", "C_SSP5-NPi-rem-5", "C_SSP5-PkBudg1300-rem-5", "C_SSP5-PkBudg1100-rem-5", "C_SSP5-PkBudg900-rem-5")),
+      list(period = "both",  set = "cpl-SDP",  dirs = c("C_SDP-Base-rem-5",  "C_SDP-NPi-rem-5",  "C_SDP-PkBudg1300-rem-5",  "C_SDP-PkBudg1100-rem-5",  "C_SDP-PkBudg1000-rem-5")),
+      list(period = "both",  set = "cpl-SSP1", dirs = c("C_SSP1-Base-rem-5", "C_SSP1-NPi-rem-5", "C_SSP1-PkBudg1300-rem-5", "C_SSP1-PkBudg1100-rem-5", "C_SSP1-PkBudg900-rem-5")),
+      list(period = "both",  set = "cpl-SSP2", dirs = c("C_SSP2-Base-rem-5", "C_SSP2-NPi-rem-5", "C_SSP2-PkBudg1300-rem-5", "C_SSP2-PkBudg1100-rem-5", "C_SSP2-PkBudg900-rem-5", "C_SSP2-NDC-rem-5")), #
+      list(period = "both",  set = "cpl-SSP5", dirs = c("C_SSP5-Base-rem-5", "C_SSP5-NPi-rem-5", "C_SSP5-PkBudg1300-rem-5", "C_SSP5-PkBudg1100-rem-5", "C_SSP5-PkBudg900-rem-5")),
       
       #list(period = "both",  set = "cpl-PkBudg900-plant-vgl",  dirs = c("C_SDP-PkBudg900-plant-rem-5", "C_SDP-PkBudg900-rem-5", "C_SSP2-PkBudg900-plant-rem-5", "C_SSP2-PkBudg900-rem-5")),
       #list(period = "both",  set = "cpl-PkBudg900-plant",      dirs = c("C_SDP-PkBudg900-plant-rem-5",  "C_SSP1-PkBudg900-plant-rem-5",  "C_SSP2-PkBudg900-plant-rem-5",  "C_SSP5-PkBudg900-plant-rem-5")),