In this paper we describe a new model for the train unit shunting problem. This model is able to solve the matching and the parking subproblem in an integrated manner, usually requiring a reasonable amount of computation time for generating acceptable solutions. Furthermore, the model incorporates complicating details from practice, such as trains composed of several train units and shunt tracks that can be approached from two sides. Computation times are reduced by introducing the concept of virtual shunt tracks. Computational results are presented for real-life cases of NS Reizigers, the main Dutch passenger railway operator.