diff --git a/src/DynareSolvers.jl b/src/DynareSolvers.jl
index be2c3f5955d811fd1fe26954fa30103a2b8c7f10..46848faff18a05376d7c3b39eeb89d0ee5f1003d 100644
--- a/src/DynareSolvers.jl
+++ b/src/DynareSolvers.jl
@@ -132,17 +132,17 @@ Solves a system of nonlinear equations of several variables using a trust region
 """
 function trustregion(f!::Function, j!::Function, x0::Vector{Float64}, tolx::Float64, tolf::Float64, maxiter::Int)
     wa = TrustRegionWA(length(x0))
-    info = trustregion(f!, j!, x0, tolx, tolf, maxiter, wa)
+    info = trustregion(f!, j!, x0, 1.0, tolx, tolf, maxiter, wa)
     return wa.x, info
 end
 
 """
-    trustregion(f!::Function, j!::Function, y0::Vector{Float64}, tolf::Float64, tolx::Float64, maxiter::Int, wa::TrustRegionWA)
+    trustregion(f!::Function, j!::Function, y0::Vector{Float64}, factor::Float64, tolf::Float64, tolx::Float64, maxiter::Int, wa::TrustRegionWA)
 
 Solves a system of nonlinear equations of several variables using a trust region method. This version requires a last argument of type `TrustRegionWA`
 which holds various working arrays. This version of the solver does not instantiate any array. Results of the solver are available in `wa.x` if `info=1`. 
 """
-function trustregion(f!::Function, j!::Function, x0::Vector{Float64}, tolx::Float64, tolf::Float64, maxiter::Int, wa::TrustRegionWA)
+function trustregion(f!::Function, j!::Function, x0::Vector{Float64}, factor::Float64, tolx::Float64, tolf::Float64, maxiter::Int, wa::TrustRegionWA)
     n, iter, info = length(x0), 1, 0
     fnorm, fnorm1 = one(Float64), one(Float64)
     wa.x .= copy(x0)
@@ -189,6 +189,7 @@ function trustregion(f!::Function, j!::Function, x0::Vector{Float64}, tolx::Floa
             if δ<macheps
                 δ = one(Float64)
             end
+            δ *= factor
         else
             wa.fjaccnorm__ .= max.(.1*wa.fjaccnorm__, wa.fjaccnorm)
         end