diff --git a/R/InsuranceParameters.R b/R/InsuranceParameters.R
index 02291f00bc5d93b03665d30fd3052e8d7bb713ed..06e5b13ba52889f9c3a1283aae686ef84d63d190 100644
--- a/R/InsuranceParameters.R
+++ b/R/InsuranceParameters.R
@@ -443,6 +443,9 @@ InsuranceContract.Values = list(
 #'               immediately for balance-sheet purposes. In particular, the
 #'               balance sheet reserve at time $t=0$ is not 0, but the
 #'               premium paid. In turn, no unearned premiums are applied.}
+#'     \item{\code{$surrenderIncludesCostsReserves}}{Whether (administration)
+#'               cost reserves are paid out on surrender (i.e. included in the
+#'               surrender value before surrender penalties are applied)}
 #' }
 #'
 #' ## Elements of sublist \code{InsuranceContract.ParameterDefault$ProfitParticipation}
@@ -563,7 +566,8 @@ InsuranceContract.ParameterDefaults = list(
     Features = list(                            # Special cases for the calculations
         betaGammaInZillmer = FALSE,             # Whether beta and gamma-costs should be included in the Zillmer premium calculation
         alphaRefundLinear  = TRUE,              # Whether the refund of alpha-costs on surrender is linear in t or follows the NPV of an annuity
-        useUnearnedPremiums = isRegularPremiumContract # Whether unearned premiums should be calculated in the balance sheet reserves. Otherwise, a premium paid at the beginning of the period is added to the reserve for balance-sheet purposes.
+        useUnearnedPremiums = isRegularPremiumContract, # Whether unearned premiums should be calculated in the balance sheet reserves. Otherwise, a premium paid at the beginning of the period is added to the reserve for balance-sheet purposes.
+        surrenderIncludesCostsReserves = TRUE  # Whether (administration) cost reserves are paid out on surrender (i.e. included in the surrender value before surrender penalties are applied)
     ),
 
     ProfitParticipation = list(
diff --git a/R/InsuranceTarif.R b/R/InsuranceTarif.R
index 11b7c2b86c30f48c2399bd1c7a56dbc521d3958b..3a0b6d48d401d038a7f83c7130a2bb690f92b1c3 100644
--- a/R/InsuranceTarif.R
+++ b/R/InsuranceTarif.R
@@ -1090,7 +1090,11 @@ InsuranceTarif = R6Class(
       }
 
       # Reduction Reserve: Reserve used for contract modifications:
-      resReduction = pmax(0, resZ + resGamma + alphaRefund) # V_{x,n}^{Rkf}
+      resReduction = resZ + alphaRefund;
+      if (params$Features$surrenderIncludesCostsReserves) {
+        resReduction = resReduction + resGamma;
+      }
+      resReduction = pmax(0,resReduction) # V_{x,n}^{Rkf}
 
       # Collect all reserves to one large matrix
       res = cbind(
diff --git a/man/InsuranceContract.ParameterDefaults.Rd b/man/InsuranceContract.ParameterDefaults.Rd
index 118bde820c9f02aae8b73536c9659dd8a5ada6f6..f3c00be930e3c8e84b4fdca9e89334219f1144a1 100644
--- a/man/InsuranceContract.ParameterDefaults.Rd
+++ b/man/InsuranceContract.ParameterDefaults.Rd
@@ -241,6 +241,9 @@ premiums, but the initial single premium is added to the reserve
 immediately for balance-sheet purposes. In particular, the
 balance sheet reserve at time $t=0$ is not 0, but the
 premium paid. In turn, no unearned premiums are applied.}
+\item{\code{$surrenderIncludesCostsReserves}}{Whether (administration)
+cost reserves are paid out on surrender (i.e. included in the
+surrender value before surrender penalties are applied)}
 }
 }