The city of Hermosillo, Sonora in northern Mexico was investigated for its heavy metals content. Samples of sedimented dust in roofs from 25 elementary schools were analyzed for their contents of Ni, Cr, Zn, Cd, Co, Ba, V, Pb, Fe and Cu after digestion with nitric acid. The results of the analysis were used to determine spatial distribution and magnitude of heavy metals pollution. The results of this study reveal that heavy metals distribution is different in two areas of the city. The southern area contains higher concentrations of heavy metals than the northcentral area. The mean level of Cd in exterior dust is 5.65 mg kg-1in the southern area whereas the mean level of Cd is 2.83 mg kg-1in the northcentral area. Elevated concentrations of Zn (2012 mg kg-1), Pb (101.88 mg kg-1), Cr (38.13 mg kg-1) and Cd (28.38 mg kg-1) in roof dust were found in samples located near industrial areas. Principal component analysis (PCA) was applied to the data matrix to evaluate the analytical results and to identify the possible pollution sources of metals. PCA shows two main sources: (1) Pb, Cd, Cr and Zn are mainly derived from industrial sources, combined with traffic sources; (2) Fe, Co and Ba are mainly derived from natural sources. V and Ni are highly correlated and possibly related to fuel combustion processes. Enrichment factors were calculated, which in turn further confirms the source identification. Ba and Co are dominantly crustal. Anthropogenically added Cd, Pb, Zn and Cr show maximum enrichment relative to the upper continental crustal component. The distribution of the heavy metals in dust does not seem to be controlled only by the topography of the city, but also by the location of the emission sources. © 2006 Elsevier Ltd. All rights reserved.