diff --git a/matlab/ep/ep_problem_1.m b/matlab/ep/ep_problem_1.m
index 51c7fb1a80e8b955b90629151913c26a082b9fa8..35757c83af6c05b28e4c52345bf54e3cc5781cf3 100644
--- a/matlab/ep/ep_problem_1.m
+++ b/matlab/ep/ep_problem_1.m
@@ -43,7 +43,7 @@ for i = 1:order+1
         end
         if i <= order
             for k=1:nnodes
-                if hybrid_order==2 && i==order
+                if hybrid_order && i==order
                     z = [Y(i_cols_p,i_w_p);
                          Y(i_cols_s,j);
                          Y(i_cols_f,(j-1)*nnodes+k)+h_correction(i_hc)];
diff --git a/matlab/ep/ep_problem_2.m b/matlab/ep/ep_problem_2.m
index 2fda1838bc7d4532764ea9a53bd0d0721de732de..26ba78895cc1de7b74448d0c5cb0e45b94422ca3 100644
--- a/matlab/ep/ep_problem_2.m
+++ b/matlab/ep/ep_problem_2.m
@@ -79,7 +79,7 @@ for i = 1:order+1
                 else
                     k1 = (nnodes-1)*(i-1)+k;
                 end
-                if hybrid_order == 2 && (k > 1 || i == order)
+                if hybrid_order && (k > 1 || i == order)
                     z = [Y(i_cols_p,1);
                          Y(i_cols_s,1);
                              Y(i_cols_f,k1)+h_correction(i_hc)];
diff --git a/matlab/ep/extended_path_initialization.m b/matlab/ep/extended_path_initialization.m
index 90828dc4b6895472bf0af0170f4dae43b2e37d05..63197f3824a83df1ac5614c08dd89515416d6526 100644
--- a/matlab/ep/extended_path_initialization.m
+++ b/matlab/ep/extended_path_initialization.m
@@ -100,7 +100,11 @@ end
 
 % hybrid correction
 pfm.hybrid_order = ep.stochastic.hybrid_order;
-if pfm.hybrid_order
+if pfm.hybrid_order==1
+    warning('extended_path:: hybrid=1 is equivalent to hybrid=0 (option value must be an integer greater than 1 to be effective).')
+end
+
+if pfm.hybrid_order>1
     oo_.dr = set_state_space(oo_.dr, M_);
     options = options_;
     options.order = pfm.hybrid_order;
diff --git a/matlab/ep/solve_stochastic_perfect_foresight_model_0.m b/matlab/ep/solve_stochastic_perfect_foresight_model_0.m
index efdaf624721374a5855595a6c003ee0882145621..9196ea79bceff70a92f1d866823c964cafefa689 100644
--- a/matlab/ep/solve_stochastic_perfect_foresight_model_0.m
+++ b/matlab/ep/solve_stochastic_perfect_foresight_model_0.m
@@ -62,18 +62,18 @@ if update_pfm_struct
     pfm.nodes = nodes;
     pfm.weights = weights;
 
-    hybrid_order = pfm.hybrid_order;
-    dr = pfm.dr;
-    if hybrid_order > 0
-        if hybrid_order == 2
-            h_correction = 0.5*dr.ghs2(dr.inv_order_var);
+    if pfm.hybrid_order>0
+        if pfm.hybrid_order==2
+            pfm.h_correction = 0.5*pfm.dr.ghs2(dr.inv_order_var);
+        elseif pfm.hybrid_order>2
+            pfm.h_correction = pfm.dr.g_0(pfm.dr.inv_order_var);
+        else
+            pfm.h_correction = 0;
         end
     else
-        h_correction = 0;
+        pfm.h_correction = 0;
     end
 
-    pfm.h_correction = h_correction;
-
     z = endo_simul(lead_lag_incidence_t(:)>0);
     [~, jacobian] = dynamic_model(z, exo_simul, pfm.params, pfm.steady_state, 2);
 
@@ -134,7 +134,6 @@ if update_pfm_struct
     pfm.order = order;
     pfm.world_nbr = world_nbr;
 
-    pfm.hybrid_order = hybrid_order;
     pfm.i_cols_1 = i_cols_1;
     pfm.i_cols_h = i_cols_j;
     pfm.icA = icA;
diff --git a/matlab/ep/solve_stochastic_perfect_foresight_model_1.m b/matlab/ep/solve_stochastic_perfect_foresight_model_1.m
index 19eb0673804beb1101b3a5fc3c0a15112e8694de..d9f0deda766f7a5045265b7a0140de804e13b9ec 100644
--- a/matlab/ep/solve_stochastic_perfect_foresight_model_1.m
+++ b/matlab/ep/solve_stochastic_perfect_foresight_model_1.m
@@ -60,6 +60,10 @@ if update_pfm_struct
     if pfm.hybrid_order > 0
         if pfm.hybrid_order == 2
             pfm.h_correction = 0.5*pfm.dr.ghs2(pfm.dr.inv_order_var);
+        elseif pfm.hybrid_order>2
+            pfm.h_correction = pfm.dr.g_0(pfm.dr.inv_order_var);
+        else
+            pfm.h_correction = 0;
         end
     else
         pfm.h_correction = 0;