In this paper we conduct an analysis of the effects of firing costs in models that consider simultaneously worker heterogeneity, imperfect information on their productivity and union power. We consider an OLG model where heterogeneous workers participate in the labour market both when young and old. Each generation of workers is represented by its own union. Unions set wages unilaterally taking into account firm behavior. Firms are atomistic and choose employment treating wages parametrically. There is imperfect information about worker productivity. We find that at given wages firing costs increase youth unemployment and decrease old age unemployment. However, once we take the wage response into account, we find that firing costs increase both youth and old age unemployment. This happens because unions react strategically, and respond to higher firing costs. Indeed, when firing costs increase, firms refrain from hiring youths since, if a young worker turns out to be inadequate, it will be more costly to fire him. The union, knowing this, reduces the wage of young workers in order to attempt to increase their employment prospects. However, despite this cut youth unemployment still increases with firing costs. In the second period, on the contrary, higher firing costs give the union more power. In fact, knowing that firms will be less likely to cut their labour force when firing costs are high, the union increases the wage of old workers, and, therefore, old age unemployment increases.