Immobilization of trace elements in contaminated soils by zero-valent iron (ZVI) is a promising remediation method, but questions about its long-term performance remain unanswered. To quantify immobilization and predict possible contaminant remobilization on long timescales detailed knowledge about immobilization mechanisms is needed. This study aimed at assessing the long-term effect of ZVI amendments on dissolved copper and arsenic in contaminated soils, at exploring the immobilization mechanism(s), and at setting up a geochemical model able to estimate dissolved copper and arsenic under different scenarios.Samples from untreated and ZVI-treated plots in two field experiments where ZVI had been added 6 and 15 years ago were investigated by a combination of batch experiments, geochemical modeling and extended X-ray absorption fine structure (EXAFS) spectroscopy.Dissolved copper and arsenic concentrations were described by a multisurface geochemical model with surface complexation reactions, verified by EXAFS. The ZVI remained "reactive" after 6-15 years, i.e. the dissolved concentrations of copper and arsenic were lower in the ZVI-treated than in the untreated soils. There was a shift in copper speciation from organic matter complexes in the untreated soil to surface complexes with iron (hydr)oxides in the ZVI-treated soil. The pH value was important for copper immobilization and ZVI did not have a stabilizing effect if pH was lower than about 6. Immobilization of arsenic was slightly pH-dependent and sensitive to the competition with phosphate. If phosphate was ignored in the modeling, the dissolution of arsenate was greatly underestimated.