Haemoglobin level declines with increasing age in cross sectional studies. Little is known about the longitudinal changes of haemoglobin. Because both high or low haemoglobin levels increase mortality and morbidity we examined how changes in lifestyle factors like body mass index (BMI) and smoking habits influence cohort changes in haemoglobin level. In all, 4159 men aged 20-49 years at baseline were examined in 1974 and 1994-1995 in a longitudinal, population-based study from the municipality of Tromsø, Northern Norway. Mean haemoglobin was 148 g/l. There was no difference in mean haemoglobin after 20 years in any strata of age. Mean BMI increased 2.1 kg/m(2). The prevalence of smokers decreased 20.1 percentage points. In a multiple regression analysis increase in BMI was associated with increased haemoglobin change. Smoking cessation lowered mean haemoglobin 1.6 g/l compared to never smokers. Haemoglobin increased 0.8 g/l in smoking quitters whose BMI increased >2.5 kg/m(2) compared to a decrease of 6.7 g/l in weight reducers. There was a positive dose-response relationship between changes in cigarettes smoked per day and change in haemoglobin among consistent smokers. In conclusion, in contrast to cross sectional studies, mean haemoglobin did not change during 20 years ageing of relatively young men. This could be explained by higher BMI and less smoking. The increase in BMI affected haemoglobin change to such an extent that the reduction in haemoglobin due to smoking cessation was counteracted. Prospective studies are needed to address the health implications.