diff --git a/matlab/stochastic_solver/k_order_pert.m b/matlab/stochastic_solver/k_order_pert.m
index 41ea2df57bcfc7034592cfddf3362d7e6b29c512..a7428128c65d22c3e76b2525132bdcfcf44b9d4f 100644
--- a/matlab/stochastic_solver/k_order_pert.m
+++ b/matlab/stochastic_solver/k_order_pert.m
@@ -43,7 +43,9 @@ end
 try
     [dynpp_derivs, dyn_derivs] = k_order_perturbation(dr,M_,options_);
 catch ME
-    disp(ME.message)
+    if options_.verbosity > 0
+        disp(ME.message)
+    end
     info(1)=9;
     return
 end
diff --git a/mex/sources/k_order_perturbation/k_order_perturbation.cc b/mex/sources/k_order_perturbation/k_order_perturbation.cc
index 90ee33610b0a75fa3f033e934092b31a481eb2ad..9cf3232792536325a07453374ba3b7f9585dd2b6 100644
--- a/mex/sources/k_order_perturbation/k_order_perturbation.cc
+++ b/mex/sources/k_order_perturbation/k_order_perturbation.cc
@@ -131,6 +131,11 @@ extern "C"
       mexErrMsgTxt("options_.pruning should be a logical scalar");
     bool pruning = static_cast<bool>(mxGetScalar(pruning_mx));
 
+    const mxArray* verbosity_mx = mxGetField(options_mx, 0, "verbosity");
+    if (!(verbosity_mx && mxIsScalar(verbosity_mx) && mxIsNumeric(verbosity_mx)))
+      mexErrMsgTxt("options_.verbosity should be a numeric scalar");
+    int verbosity {static_cast<int>(mxGetScalar(verbosity_mx))};
+
     // Extract various fields from M_
     const mxArray* fname_mx = mxGetField(M_mx, 0, "fname");
     if (!(fname_mx && mxIsChar(fname_mx) && mxGetM(fname_mx) == 1))
@@ -356,18 +361,21 @@ extern "C"
       }
     catch (const KordException& e)
       {
-        e.print();
+        if (verbosity > 0)
+          e.print();
         mexErrMsgTxt(
             ("dynare:k_order_perturbation: Caught Kord exception: " + e.get_message()).c_str());
       }
     catch (const TLException& e)
       {
-        e.print();
+        if (verbosity > 0)
+          e.print();
         mexErrMsgTxt("dynare:k_order_perturbation: Caught TL exception");
       }
     catch (SylvException& e)
       {
-        e.printMessage();
+        if (verbosity > 0)
+          e.printMessage();
         mexErrMsgTxt("dynare:k_order_perturbation: Caught Sylv exception");
       }
     catch (const DynareException& e)