A tubular resistance furnace was used as a reactor to simulate mercury and arsenic in smelter flue gases by heating mercury and arsenic compounds. The flue gas containing Hg(2+), Hg(0) and As was treated with ammonium sulphide. The experiment was conducted to investigate the effects of varying the concentration of ammonium sulphide, the pH value of ammonium sulphide, the temperature of ammonium sulphide, the presence of SO2 and the presence of sulphite ion on removal efficiency. The prepared adsorption products were characterized by Fourier transform infrared spectroscopy, X-ray diffraction, X-ray photoelectron spectroscopy and scanning electron microscopy. The results showed that the optimal concentration of ammonium sulphide was 0.8 mol/L. The optimal pH value of ammonium sulphide was 10, and the optimal temperature of ammonium sulphide was 20°C.Under the optimum conditions, the removal efficiency of Hg(2+), Hg(0) and As could reach 99%, 88.8%, 98%, respectively. In addition, SO2 and sulphite ion could reduce the removal efficiency of mercury and arsenic from simulated flue gas.