In 1997, the prevalence of anaemia was 40·9 % among children aged 6–59 months in the State of Pernambuco, north-east Brazil. Using the same sample of children, we have investigated possible reasons for this high prevalence. A representative sample was selected through a three-stage process: proportional systematic random sampling of municipalities in the State, systematic random sampling of census sectors within these municipalities, and finally, simple random sampling of households with children aged 6–59 months to obtain the sample of 650 children. Data collection included demographic, environmental, socio-economic and maternal variables, and nutritional status and dietary intakes of the children. Multiple linear regression analysis was based on a hierarchical model of factors associated with Hb concentration. The mean Hb concentration of children aged 6–23 months was 10 g/l lower than that of older children. In the regression analysis, child age explained 8·3 % of the variance in Hb concentration. The intake of bioavailable Fe explained a further 3·3, serum retinol 2·7, diarrhoea 2·4, water treatment 1·7, sanitation 1·3 and low birth-weight 0·5 %. The final model explained 23·4 % of the variance in Hb concentration. We conclude that child age, bioavailable-Fe intake, serum retinol concentration, diarrhoea, water treatment, sanitation and low birth-weight are independently associated with Hb concentration. In north-east Brazil, anaemia prevention programmes among children should focus on those aged <2 years and should consider feasible strategies to improve intakes of bioavailable Fe and vitamin A, and reduce infection. Supplemental Fe should be given to low birth-weight infants.