Kalman filter is an optimal recursive estimator of the system state in terms of minimum-mean-square error (MMSE) under linear Gaussian assumptions. The Gaussianity assumption is not satisfied in many applications, such as dynamic channel estimation in mobile communications, maneuvering target tracking and speech enhancement. In this paper, the MMSE estimator for linear, non-Gaussian problems is presented, where the Gaussian mixture model is used for non-Gaussian distributions. The resulting recursive algorithm, named as non-Gaussian Kalman filter (NGKF), is composed of several conventional Kalman filters combined in an optimal manner. The performance of the proposed NGKF, is compared to the Kalman and particle filters via simulations. It is shown that the proposed NGKF outperforms both the Kalman and particle filters.