diff --git a/doc/dynare.texi b/doc/dynare.texi
index 670eef81451c1b0234dc0c05623a761154a17781..7403d6bdefc48148c0e1f9267323dbbb14410a67 100644
--- a/doc/dynare.texi
+++ b/doc/dynare.texi
@@ -2392,25 +2392,28 @@ before (except when a @code{steady} command doesn't follow an
 In the context of stochastic simulations, @code{histval} allows setting
 the starting point of those simulations in the state space. As for the case of
 perfect foresight simulations, all not explicitly specified variables are set to 0.
-Moreover, as only states enter the recursive policy functions, all values specified for control variables will be ignored.
+Moreover, as only states enter the recursive policy functions, all values specified for control variables will be ignored. This can be used
 
 @itemize
 
 @item
-in @xref{stoch_simul}, if the @code{periods} options is specified. Note that this only affects the starting point for the simulation, but not for the impulse response functions.
+in @ref{stoch_simul}, if the @code{periods} options is specified. Note that this only affects the starting point for the simulation, but not for the impulse response functions.
 
 @item
-in @xref{forecast} as the initial point at which the forecasts are computed
+in @ref{forecast} as the initial point at which the forecasts are computed
 
 @item
-in @xref{conditional_forecast} as the initial point at which the conditional forecasts are computed
-@end itemize
+in @ref{conditional_forecast} as the initial point at which the conditional forecasts are computed
 
-For @ref{Ramsey} policy, it also specifies the values of the endogenous states at 
+@item 
+in @ref{Ramsey} policy, where it also specifies the values of the endogenous states at 
 which the objective function of the planner is computed. Note that the initial values 
 of the Lagrange multipliers associated with the planner's problem cannot be set
 (@pxref{planner_objective_value}).
 
+@end itemize
+
+
 @examplehead
 
 @example
@@ -3603,7 +3606,7 @@ solution is computed using the @code{extended_path} command.
 
 @deffn Command stoch_simul [@var{VARIABLE_NAME}@dots{}];
 @deffnx Command stoch_simul (@var{OPTIONS}@dots{}) [@var{VARIABLE_NAME}@dots{}];
-
+@anchor{stoch_simul}
 @descriptionhead
 
 @code{stoch_simul} solves a stochastic (@i{i.e.} rational
diff --git a/tests/Makefile.am b/tests/Makefile.am
index e86dfb5e99511627387eca38a0c98079d01e5030..bf04ef1653a459375423096aa735902cc8100722 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -135,6 +135,7 @@ MODFILES = \
 	conditional_forecasts/fs2000_cal.mod \
 	conditional_forecasts/fs2000_est.mod \
 	conditional_forecasts/fs2000_conditional_forecast_initval.mod \
+	conditional_forecasts/fs2000_conditional_forecast_histval.mod \
 	recursive/ls2003.mod \
 	recursive/ls2003_bayesian.mod \
 	recursive/ls2003_bayesian_xls.mod \
diff --git a/tests/conditional_forecasts/fs2000_conditional_forecast_histval.mod b/tests/conditional_forecasts/fs2000_conditional_forecast_histval.mod
new file mode 100644
index 0000000000000000000000000000000000000000..a5c6c9dcd6188e8e4c2b59f9a2e070a192d38165
--- /dev/null
+++ b/tests/conditional_forecasts/fs2000_conditional_forecast_histval.mod
@@ -0,0 +1,105 @@
+/* Mod file tests the correctness of the conditional_forecast command when used together with histval by
+ * - checking whether the unconditional forecast from the conditional_forecast-command 
+ *      coincides with the one from the forecast command
+ * - checking whether the conditional forecast coincides with the path of 
+ *      capital derived when simulating the model with simult_ and the computed exogenous instruments
+*/
+
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+stoch_simul(irf=0);
+
+conditional_forecast_paths;
+var gy_obs;
+periods  1  2  3:5;
+values   0.01 -0.02 0;
+var gp_obs;
+periods  1  2  3:5;
+values   1 1.04 0.98;
+end;
+
+%set capital to non-steady state value and all other states to steady state
+histval;
+k(0) = 6; 
+m(0)=1.01100000000000;
+P(0)=2.25815456051727;
+y(0)=0.580764879486831;
+end;
+
+conditional_forecast(periods=100,parameter_set=calibration,replic=10000, controlled_varexo=(e_m,e_a));
+
+plot_conditional_forecast(periods=100) gy_obs gp_obs k;
+forecast(periods=100);
+
+%compare unconditional forecasts
+cond_forecast=load('conditional_forecasts.mat');
+if max(abs(cond_forecast.forecasts.uncond.Mean.k(2:end)-oo_.forecast.Mean.k))>1e-8
+    error('Unconditional Forecasts do not match')
+end
+        
+%compare conditional forecasts; histval here sets initval condition for capital different from steady state
+initial_condition_states = oo_.dr.ys;
+initial_condition_states(strmatch('k',M_.endo_names,'exact')) = 6;
+shock_matrix = zeros(options_cond_fcst_.periods ,M_.exo_nbr); %create shock matrix with found controlled shocks
+shock_matrix(1:5,strmatch('e_a',M_.exo_names,'exact')) = cond_forecast.forecasts.controlled_exo_variables.Mean.e_a; %set controlled shocks to their values
+shock_matrix(1:5,strmatch('e_m',M_.exo_names,'exact')) = cond_forecast.forecasts.controlled_exo_variables.Mean.e_m; %set controlled shocks to their values
+
+y_simult = simult_(initial_condition_states,oo_.dr,shock_matrix,1);
+
+if max(abs(y_simult(strmatch('k',M_.endo_names,'exact'),:)'-cond_forecast.forecasts.cond.Mean.k))>1e-8
+    error('Unconditional Forecasts do not match')
+end
diff --git a/tests/conditional_forecasts/fs2000_conditional_forecast_initval.mod b/tests/conditional_forecasts/fs2000_conditional_forecast_initval.mod
index 0d32149301ca257d6d6c8b1bdca13d04356d5952..f37287e2a0c06a4406be8586425f9e1eb93bf48e 100644
--- a/tests/conditional_forecasts/fs2000_conditional_forecast_initval.mod
+++ b/tests/conditional_forecasts/fs2000_conditional_forecast_initval.mod
@@ -3,7 +3,9 @@
  *      coincides with the one from the forecast command
  * - checking whether the conditional forecast coincides with the path of 
  *      capital derived when simulating the model with simult_ and the computed exogenous instruments
-*/
+ * - initval should not play a role as initial conditions need to be set with histval; with initval
+ *      the subsequently computed steady state is used
+ */
 
 var m P c e W R k d n l gy_obs gp_obs y dA;
 varexo e_a e_m;
@@ -84,18 +86,19 @@ forecast(periods=100);
 
 %compare unconditional forecasts
 cond_forecast=load('conditional_forecasts.mat');
-if max(abs(cond_forecast.forecasts.uncond.Mean.k(2:end)-oo_.forecast.Mean.k))>1e-3
+if max(abs(cond_forecast.forecasts.uncond.Mean.k(2:end)-oo_.forecast.Mean.k))>1e-8
     error('Unconditional Forecasts do not match')
 end
         
-%compare conditional forecasts
-initial_condition_states = oo_.steady_state;
+%compare conditional forecasts; initval should not play a role as initial
+%conditions need to be set with histval; 
+initial_condition_states = oo_.dr.ys; 
 shock_matrix = zeros(options_cond_fcst_.periods ,M_.exo_nbr); %create shock matrix with found controlled shocks
 shock_matrix(1:5,strmatch('e_a',M_.exo_names,'exact')) = cond_forecast.forecasts.controlled_exo_variables.Mean.e_a; %set controlled shocks to their values
 shock_matrix(1:5,strmatch('e_m',M_.exo_names,'exact')) = cond_forecast.forecasts.controlled_exo_variables.Mean.e_m; %set controlled shocks to their values
 
 y_simult = simult_(initial_condition_states,oo_.dr,shock_matrix,1);
 
-if max(abs(y_simult(strmatch('k',M_.endo_names,'exact'),:)'-cond_forecast.forecasts.cond.Mean.k))>1e-3
+if max(abs(y_simult(strmatch('k',M_.endo_names,'exact'),:)'-cond_forecast.forecasts.cond.Mean.k))>1e-8
     error('Unconditional Forecasts do not match')
 end