diff --git a/src/solve_model_for_online_filter.m b/src/solve_model_for_online_filter.m
index 332378d5a930aafe81a154e7ffa325d2545842ec..fbfcb05b627a19762fd04a11ed7db112feb7ffe5 100644
--- a/src/solve_model_for_online_filter.m
+++ b/src/solve_model_for_online_filter.m
@@ -165,11 +165,13 @@ if nargout>4
         ReducedForm.use_k_order_solver = true;
         ReducedForm.dr = dr;
     else
+        n_states=size(dr.ghx,2);
+        n_shocks=size(dr.ghu,2);
         ReducedForm.use_k_order_solver = false;
-        ReducedForm.ghxx = zeros(size(restrict_variables_idx,1),size(dr.kstate,2));
-        ReducedForm.ghuu = zeros(size(restrict_variables_idx,1),size(dr.ghu,2));
-        ReducedForm.ghxu = zeros(size(restrict_variables_idx,1),size(dr.ghx,2));
-        ReducedForm.constant = ReducedForm.steadystate ;
+        ReducedForm.ghxx = zeros(size(restrict_variables_idx,1),n_states^2);
+        ReducedForm.ghuu = zeros(size(restrict_variables_idx,1),n_shocks^2);
+        ReducedForm.ghxu = zeros(size(restrict_variables_idx,1),n_states*n_shocks);
+        ReducedForm.constant = ReducedForm.steadystate;
     end
     ReducedForm.state_variables_steady_state = dr.ys(dr.order_var(state_variables_idx));
     ReducedForm.Q = Q;