diff --git a/matlab/nonlinear-filters/nonlinear_kalman_filter.m b/matlab/nonlinear-filters/nonlinear_kalman_filter.m
index 551345c1acd2aade60c6658b08b5143994a9ba58..27dbae5c69bb7126460440ce8d561c6d622e3e68 100644
--- a/matlab/nonlinear-filters/nonlinear_kalman_filter.m
+++ b/matlab/nonlinear-filters/nonlinear_kalman_filter.m
@@ -187,8 +187,8 @@ for t=1:sample_size
             lik(t)=-Inf;
             return
         end
+        PredictedObservedVarianceSquareRoot = chol(PredictedObservedVariance);
     end
-    PredictedObservedVarianceSquareRoot = chol(PredictedObservedVariance);
     PredictedObservedInverseVarianceSquareRoot = PredictedObservedVarianceSquareRoot\eye(n); % Inverse of the Cholesky -> inv(PredictedObservedVariance) = A*A'
     StandardPredictionError = PredictedObservedInverseVarianceSquareRoot'*PredictionError;
     lik(t) = -.5*n*log(2*pi) + sum(log(diag(PredictedObservedInverseVarianceSquareRoot))) - .5*dot(StandardPredictionError, StandardPredictionError);